1.题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
分析:只需要对三位数的数字进行循环(100~999),判断三位数中个十百位上的数的立方和是否与三位数数值相等即可
Java实现
1 public class FindDaffodilNumber { 2 void DaffodiNumber() { 3 int x,y,z,sum; 4 for(int i=100;i<=999;i++) { 5 x=i%10; 6 y=(i%100-x)/10; 7 z=(i-x-y*10)/100; 8 sum = (int) (Math.pow(x, 3) + Math.pow(y, 3)+Math.pow(z, 3)); 9 if(sum==i) { 10 System.out.print(i+",");//双引号括起来代表字符串,单引号括起来代表char类型 11 } 12 } 13 } 14 15 public static void main(String args[]) { 16 FindDaffodilNumber D = new FindDaffodilNumber(); 17 D.DaffodiNumber(); 18 } 19 }
Python实现
1 # -*- coding: utf-8 -*- 2 3 ''' 4 找到水仙花数并输出,x、y、z分别代表个位、十位、百位上的数 5 ''' 6 def FindDaffodilNumber(): 7 for i in range(100, 1000): 8 x = i%10 9 y = (i%100 - x)/10 10 z = (i - x - y*10)/100 11 if x**3 + y**3 + z**3 == i: 12 print(i) 13 14 if __name__ == '__main__': 15 FindDaffodilNumber()