作者: 刘克方 时间: 2012-5-16 21:45
public class FlowerNum {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=100;i<999;i++){
String str=i+"";
int x=Integer.parseInt(str.charAt(0)+"");
int y=Integer.parseInt(str.charAt(1)+"");
int z=Integer.parseInt(str.charAt(2)+"");
int count=x*x*x+y*y*y+z*z*z;
if(i==count){
System.out.println(i);
}
}
}
}
输出结果为:
153
370
371
407 作者: 麦田守望者0812 时间: 2012-5-16 21:48
public int daffodilsNum(int num){
int a = 0;
int b = 0;
int c = 0;
a = num/100;
b = (num-a*100)/10;
c = num%10;
if(num == a*a*a+b*b*b+c*c*c){
return num;
}else
{return 0;}
}
public static void main(String args[]){
for(int i = 100;i<10000;i++){
int b = daffodilsNum(i);
if(b){
System.out.println("水仙花数:"+i);
}
}
}作者: 于陈 时间: 2012-5-16 21:49
这个题目大一的时候学c++的时候还做过练习的
首先要解决的一个问题:就是取出这个三位数的每一位数字
这个解决了就一个for循环就搞定!
假设这个三位数是536
536除以100就得到百位数字 a=5
536对10求余,就得到c=6
最后拿(536-a*100-c)/10就得到b=3
很多年前就做过这个了
这破缩进搞不定了,就这么地吧。。。。。我崩溃了,我投降
//显示n位的水仙花数,4就是显示4位数的水仙花数
//n>=3 小于3位的数不是水仙花数
int n = 5;
for (int i = (int)Math.pow(10, n-1); i < Math.pow(10, n); i++)
{
int[] bits = new int[n];
int tmp = i;
int sum = 0;
for (int j = bits.length - 1; j > ~0; j--, tmp/=10)
{