java水仙花数的几种写法

来源:互联网 发布:淘宝活动规则 编辑:程序博客网 时间:2024/05/17 22:54

关于 水仙花数的几种写法的总结:

百度百科可知水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身

(例如:1^3 + 5^3+ 3^3 = 153)。


代码如下:

public class Demo {public static void main(String [] args) { /*  for (int i = 0; i < 1000; i++) {      思考:水仙花数  包不包含两位数? 一位数? 题目没有提示n>=3...       if (i<10) {int a = i % 10 ;if (i==a) {System.out.println(i);} else if (i<100) {int b = i % 10;int c = i / 10;if (i==b*b+c*c) {System.out.println(i);}}} else {                   int bai = i / 100 ;int shi = i % 100 / 10 ;int ge = i % 10 ;if (i==bai*bai*bai+shi*shi*shi+ge*ge*ge) {System.out.println(i);}}}*/ // 百度得知水仙花数是指三位数:for (int i = 100; i < 1000; i++) {// 用 for 来 输出 ;int bai = i / 100 ;int shi = i % 100 / 10 ;int ge = i % 10 ;if (i==bai*bai*bai+shi*shi*shi+ge*ge*ge) {System.out.println(i);}}System.out.println("--------------------------------");// 接下来用 while ;int x = 100 ;   while (x<1000) {   int a = x % 10;   int b = x / 10 % 10;   int c = x / 100;   if (x==a*a*a+b*b*b+c*c*c) {   System.out.println(x);   }   x++;   } System.out.println("--------------------------------");   //用  do while  int y = 100;  do { int d = y / 100 ; int e = y % 100 / 10 ; int f = y % 10 ; if (d*d*d+e*e*e+f*f*f==y) { System.out.println(y); }  y++; }  while (y < 1000 ); System.out.println("--------------------------------"); // 用三层循环?! for (int i = 1 ; i <= 9;i++ ) { for (int j = 0 ; j <= 9 ; j++) { for ( int k = 0 ; k <= 9 ; k++) { if (i*i*i+j*j*j+k*k*k==100*i+10*j+k) { // Math.powe(i,3)+Math.powe(i,3)+Math.powe(i,3)==100*i+10*j+k System.out.println(100*i+10*j+k); } }  } } System.out.println((char)42);    }}


原创粉丝点击