a+aa+aaa+......+a......a(n个a)之和

输入一个正整数 repeat (0<repeat<10),做repeat 次下列运算:
输入 2 个正整数a (0<a<10)和n(0<n<10), 求a+aa+aaa+aa⋯a(n 个a)之和。

#include <stdio.h>

int main()
{
int repeat,i;
scanf("%d",&repeat);
for(i = 0;i <repeat;i++)
{
int a,n,sum,k,x;
scanf("%d%d",&a,&n);
x=a;
sum = 0;
    for(k=0;k<n;k++)
    {

    sum =sum +a;

    a =a*10 +x; 
    }
printf("%d\n",sum);
}
return 0;

解题思路:

输入一个正整数 repeat (0<repeat<10),做repeat 次下列运算:

输入 2 个正整数a (0<a<10)和n(0<n<10), 求a+aa+aaa+aa⋯a(n 个a)之和。

1、先找出aaaaaaa(n个a)的计算规律

读取a后,aa=a*10+a aaa=aa*10+a(末尾的a为初始输入的a)

综上,如代码所示,2、利用sum进行叠加,在叠加后并对a进行赋值,使下一次循环时a的值改变。

注意点:每一次的a都在改变,那么a=a*10+a的最后的a是要为初始输入的a,但每次循环时,a在不断地改变,所以要用一个变量记录初始输入的a的值即如代码所示,int  x = a;a=a*10 +x;

猜你喜欢

转载自blog.csdn.net/xx1257gd/article/details/81048214