输入一个正整数 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 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;