gpt4 book ai didi

java - 为什么 while() 能创造魔力?

转载 作者:行者123 更新时间:2023-12-01 10:42:25 25 4
gpt4 key购买 nike

我正在编写一个程序来查找从 100 到 999 的阿姆斯特朗数字。如果我将数字作为输入程序工作,但如果我使用 while 循环检查数字,它会说每个数字都不是阿姆斯特朗数字。我不明白为什么。

这是代码:

 package armstrong;

//import java.util.Scanner;

public class Armstrong {


public static void main(String[] args) {
int n, sum = 0, temp, remainder, digits = 0;

//Scanner in = new Scanner(System.in);
//System.out.println("Input a number to check if it is an Armstrong number");
//n = in.nextInt();
n = 100;
while (n <= 999) {
temp = n;

// Count number of digits

while (temp != 0) {
digits++;
temp = temp / 10;
}

temp = n;

while (temp != 0) {
remainder = temp % 10;
sum = sum + power(remainder, digits);
temp = temp / 10;
}

if (n != sum) System.out.println(n + " is not an Armstrong number.");
else System.out.println("Armstrong number:" + n);

n++;

}
}

static int power(int n, int r) {
int c, p = 1;

for (c = 1; c <= r; c++)
p = p * n;

return p;
}
}

最佳答案

您应该在循环中初始化数字,总和为零,例如:

while (n <= 999) {
digits = 0;
sum = 0
...
}

关于java - 为什么 while() 能创造魔力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34373236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com