对于我的程序,我想要编写1-100的数组代码。在那个数组中,我想存储数字+他们的数字。例如,如果数字是6,则存储的值将是6,因为6 + 6 = 12.如果数字是17,则存储的值应该是25,因为17 + 1 + 7 = 25.我想对每个数字执行此操作。我的代码有一个方法和2 for循环,但目前输出的所有内容为0;这是我的代码。
scale3d(100%, 56, 1)
答案 0 :(得分:0)
您应该将模运算的结果添加到sum
。你应该返回sum
。
while ( num != 0){
sum += num % 10;
num /= 10;
}
return sum;
答案 1 :(得分:0)
您不需要这么多循环,您可以通过缓存先前的输出并重新使用(Dynamic programming tabulation)
来改进它。考虑到您的代码可以为您提供的值不超过100
public static int sumDigits(int num) {
int[] cache = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1 };
int sum = num + cache[num % 10] + cache[num / 10];
return sum;
}
基本上,我已经缓存了前10个输入的输出。
仅供参考,您可以通过将以前的输出存储在HashMap中来扩展较大输入的程序