黑马程序员技术交流社区
标题:
如何编写一个水仙花树
[打印本页]
作者:
上帝的寵兒
时间:
2015-10-30 12:51
标题:
如何编写一个水仙花树
这是在面试中常常遇见的一个问题,哪位大神分享一下标准代码??
作者:
gih146
时间:
2015-10-30 16:35
是要水仙花数么
/*
输出所有的水仙花数,所谓水仙花数是指一个3
位数,其各个位上数字立方和等于其本身。
例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
*/
class For04 {
public static void main(String[] args)
{
for(int i=100;i<=999;i++){//遍历所有三位数
int a =i/100; //百位上的数
int b =(i-a*100)/10;//十位上的数
int c =i%10;//个位上的数
if(i==(a*a*a)+(b*b*b)+(c*c*c)){
System.out.println(i);
}
}
复制代码
作者:
czcjyqm
时间:
2015-10-30 17:33
楼上的就是我们老师讲课时用的代码
作者:
young_ants
时间:
2015-10-30 19:04
class Demo_Flower {
public static void main(String[] args) {
int count = 0; //定义计数器,存储水仙花的个数
for (int i =100; i <= 999; i ++) { //确保其是三位数
int ge = i % 10; //获取个位数字,只需要用10求余
int shi = i / 10 % 10; //获取十位数字,先对其除10,再求余
int bai = i / 10 / 10 % 10; //获取百位数字,相当于int bai = i / 100 & 10;
if (ge*ge*ge + shi*shi*shi + bai*bai*bai == i) { //个位数字三次方,十位数字三次方与百位数字三次方的和等于这个数,就是水仙花数.java目前没有直接求三次方的运算符号,只能这样写
System.out.print(i + "\t"); //打印输出水仙花数
count ++;
}
}
System.out.println("\n水仙花的个数为:" + count);
}
}
复制代码
作者:
shiawase
时间:
2015-10-30 20:52
加油!加油!加油!加油!加油!加油!加油!加油!
作者:
y83685975
时间:
2015-10-30 21:05
加油!!!!!!!!!!
作者:
feng0606
时间:
2015-10-30 21:37
这个面试应该不会常问吧???
作者:
北极的男娃
时间:
2015-10-30 21:44
这个很普通吧
作者:
水小新
时间:
2015-10-30 21:48
第一天发的种子就有
作者:
dai2686779
时间:
2015-10-30 22:58
66666666666666666
作者:
zhengsx
时间:
2015-10-31 09:02
/*
需求:求出100至999的水仙花数,记录水仙花数的个数并输出。
水仙花数:各个位上的数字的立方和等于这个数本身的数。
思路:在for遍历从100至999,判断是否水仙花数,是的话输出这个数。
定义一个函数:输入一个数,返回这个数各个位上的立方和
定义一个函数:输入一个数,求出这个数的立方
*/
class ShuiXianHuaShu {
public static void main(String[] args){
int count = 0;//计数器
for (int i = 100;i <1000 ; i++) {
if(i == cubeSum(i)){
count++;
System.out.println(i);
}
}
System.out.println("水仙花数的个数:"+count);
}
//cube(num)求一个数的立方
private static int cube(int num){
return num*num*num;
}
//addSum(num)求一个数各个位上的立方和
private static int cubeSum(int num){
int sum = 0;
for (int i =1;i<=3 ;i++ ) {
int key = num % 10;
sum = sum + cube(key);
num = num / 10 ;
}
return sum;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2