首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每日一道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

      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次方,从而简化了代码。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230310A0118500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券