今天我被问到一个公司的C问题,我必须单独找到一个数组的所有除数的总和,除了它自己并将每个和存储在同一个数组中。例如,如果数组由{10,4组成然后,对于10,它应该存储1 + 2 + 5 = 8代替10,然后对于4,1 + 2 = 3等等。我只给了4个变量(): - array [],我,temp,n(大小)。我可以使用两个循环但它需要一个变量。任何人都可以建议我解决方案吗?
答案 0 :(得分:3)
由于您说您将数组大小作为变量 n
,因此可以将其用作循环计数器:
while (n > 0) {
--n;
temp = 0; // the sum
for (i = a[n] - 1; i > 0; --i) {
if (a[n] % i == 0) {
temp += i;
}
}
a[n] = temp;
}