每日一道c语言编程题,第十五题,计算求s=a+aa+aaa++aa...a的值

求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 <= n; i++) {

sum += term;

term = term * 10 + a;

}

printf("s=%d ", 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次方,从而简化了代码。


展开阅读全文

页面更新:2024-03-02

标签:次方   以此类推   个位   总和   变量   个数   思路   键盘   两个   语言   代码

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top