尝试编写附加持久性算法的代码。 AP是指您有一个数字,并且会不断添加其数字,直到剩下一个数字为止。例如。 9991 = 9 + 9 + 9 + 1 = 28,2 + 8 = 10,1 + 0 = 1。因此,9991的加法持久性为3。花了3次加法,将数字减为一位。
我已经编码了问题,但是它一直在增加计数器。对我来说似乎正确,但无法正常工作。
Scanner reader = new Scanner(System.in);
int ui;
int b;
int sum = 0;
int count = 0;
System.out.print("Enter a number: ");
ui = reader.nextInt();
do {
do {
b = ui % 10;
ui = ui / 10;
sum += b;
} while (ui != 0);
ui = sum;
count++;
//System.out.print(b);
//System.out.print(sum);
//System.out.print(ui);
} while (ui > 10);
System.out.print(count+1);
}
答案 0 :(得分:1)
您需要在每次运行时重置sum
,否则您将为其分配ui
,直到它溢出为止,该数量要大于10。这是正确的版本:
do {
sum = 0;
do {
b = ui % 10;
ui = ui / 10;
sum += b;
} while (ui > 9);
sum += ui;
ui = sum;
count++;
} while (ui > 9);
System.out.print(count);