求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
#include
int main() {
int a, n;
printf("请输入a和n:");
scanf("%d %d", &a, &n);
int sum = 0, term = a;
for (int i = 1; i
sum += term;
term = term * 10 + a;
}
printf("s=%d\n", sum);
return 0;
}
思路是,用两个变量sum和term来分别记录总和和每一项的值,然后使用循环逐一计算每一项的值,并将它们加到总和中。
在循环开始前,我们先将term初始化为a,表示第一项的值。然后从1到n循环,每次将term乘以10并加上a,得到下一项的值。同时,我们将这一项的值加到sum中。循环结束后,sum的值就是所有项的和。
需要注意的是,在计算下一项的值时,我们将term乘以10,并加上a,这相当于将a的十进制表示向左移动一位,并在个位上加上a。例如,当a=2时,第一项的值为2;第二项的值为2 * 10 + 2 = 22;第三项的值为22 * 10 + 2 = 222;以此类推。这样,就可以不用每次都计算10的n次方,从而简化了代码。
领取专属 10元无门槛券
私享最新 技术干货