|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- package whileDemo;
- public class Test8 {
- public static void main(String[] args) {
- int num = 100;
- int temp = num, sum = 0;
- while(num<1000){
- while(temp!=0){
- sum += Math.pow(temp%10, 3);
- temp /= 10;
- }
- if(sum==num){
- System.out.println(sum);
- }
- num++;
- }
- }
- }
复制代码
请教大佬们,为什么采用这种写法就输出不了水仙花数呢,感谢!
嗯,发现了一点小问题,你忘了重置temp和sum的值了!
每一次进行完一次while循环后,temp和sum的值都会改变,如果不重置,那么他们的初始值会是上一步进行最后求出来的值
- /*所谓“水仙花数”是指一个三位数,
- 其各位数字立方和等于该数本身。
- 例如:153是一个“水仙花数”,
- 因为153=1的三次方+5的三次方+3的三次方。
- */
- public class Test8 {
- public static void main(String[] args) {
- int num = 100;
- int temp = num, sum = 0;
-
- while(num<1000){
- while(temp!=0){
- // java.lang.Math.pow()
- // 方法用于返回第一个参数的第二个参数次方。
- sum += Math.pow(temp%10, 3);
- temp /= 10;
- }
-
- if(sum==num){
- System.out.println(sum);
- }
- num++;
- temp = num;
- sum = 0;
- }
- }
- }
复制代码
|
|