//编一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 //例如:153=1*1*1+5*5*5+3*3*3,所以153是“水仙花数”; //提示用 %及/运算符分离数字,用Math.pow()方法求三次方; //Math.pow(x,n)方法,表示x的n次幂 //方法一 int sxh, g, s, b;//定义变量水仙花,个位,十位,百位; for (sxh = 100; sxh < 1000; sxh++) { g = sxh % 100 % 10; //个位,例153%100等于53,53再%10等于3; s = sxh % 100 / 10; //十位,例153%100等于53,53再/10等于5; b = sxh / 100; //百位,例153/100等于1; if (sxh == Math.Pow(g, 3) + Math.Pow(s, 3) + Math.Pow(b, 3)) { Console.WriteLine(sxh); } } //方法二 int x = 0,y = 0,z= 0; for (int i = 100; i < 1000; i++) { x = i / 100; //百位 Math.DivRem(i, 100, out y); //计算两个32位有符号整数的商,并通过输出参数返回余数。 y = y / 10; //十位 Math.DivRem(i, 10, out z); x = x * x * x; y = y * y * y; z = z * z * z; if((x+y+z)==i) Console.WriteLine(i); } //方法三、穷举法 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==i*100+j*10+k) Console.WriteLine(i*100+j*10+k); } } } Console.ReadKey();
文章评论