数列求和
思路在注释
描述
数列求和是一类常见的问题,本题有一定的代表性:
求s=a+aa+aaa+aaaa+......+aa...aa(n位)
其中,a的值由键盘输入,位数n也由键盘输入。
输入
第一行输入a的值;
第二行输入位数n。
输出
输出对n个数完成求和运算后的结果。
比如a=3,n=6时,s=3+33+333+3333+33333+333333+<>
样本
输入
3
6
输出
370368
提示
#include <stdio.h>//14.36
int main(){//发现每个数与前一个数差10/100/1000...
//用一个变量记录当前的值 每次加入a*10,a*100,a*1000...
//如何实现呢?可以用循环,n有多少位就每次*10
int a,n,flag=0,count=0;
scanf("%d%d",&a,&n);
int x=a;
while((n--)>=1){
flag+=x;//记录当前元素,从a开始
x*=10;//x负责每次相差的数,也就是a*10,利用循环实现n次方
count+=flag;
}
printf("%d",count);
}