给定两个均不超过9
的正整数a
和n
,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)
之和。
输入格式:
输入在一行中给出不超过9
的正整数a
和n
。
输出格式:
在一行中按照“s = 对应的和
”的格式输出。
输入样例:
2 3
输出样例:
s = 246
代码:
# include <stdio.h>
# include <stdlib.h>
int main() {
int a,n,s = 0,i,temp = 0;
scanf("%d %d",&a,&n);
for (i=1;i<=n;i++) {
// aa = a * 10 + a,aaa = aa * 10 + a
temp *= 10;
temp += a;
s += temp;
}
printf("s = %d",s);
return 0;
}
提交截图:
解题思路:
这道题有点意思了,可以跟着我的思路来串一遍:
- 拿
2 3
举例,s = 2 + 22 + 222
,可以发现后一个数是前一个数的10倍 + 那个数(为什么不是11倍?你看看222 = 22 * 10 +2
,所以是不是不能写成222 = 22 * 11
) - 那么我们可以定义一个变量
temp
用于存储每次变化的值,初始化为0是因为这样我们第一层循环的时候temp += a
前不至于是别的值!