版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36292543/article/details/85200617
题目描述
2+22+222+2222+...+222..222(精确计算)
题目分析
如果指定基数为2,次数为5, 则求2+22+222+2222+22222的值,我们从每一项中可以总结出规律:
项数n | 值a | 拆分 |
1 | 2 | 0*10+2=2 |
2 | 22 | 2*10+2=22 |
3 | 222 | 22*10+2=222 |
4 | 2222 | 2222*10+2=2222 |
5 | 22222 | 22222*10+2=22222 |
... | .... | ..... |
n | 2222222… | [第(n-1)项的a]*10+a |
首先我们需要设定两个变量,分别为a和sum。
变量a是用来存放计算出来每一项所对应的值,而变量sum则是起到了一个累加的作用。
每当变量a进行完运算后都会存放到变量sum当中,这里的sum起到了一个累加器的作用,最终输出变量sum就可以了。
代码编写
#include<stdio.h>
int main() {
int x,number;
int a=0,sum=0;
printf("输入基数x:");
scanf("%d",&x);
printf("输入项数number:");
scanf("%d",&number);
for(int n=1; n<=number; n++) {
a=(a*10)+x;
sum+=a;
}
printf("sum: %d",sum);
}
测试结果如下