给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
输入格式:
输入在一行中给出不超过9的正整数a和n。
输出格式:
在一行中按照“s = 对应的和”的格式输出。
输入样例:
2 3
输出样例:
s = 246
我的答案
#include <stdio.h>
int main()
{
int a, n;
int s=0, item=0;//不要忘了初始值
scanf("%d %d", &a, &n);
for (int i = 0; i < n; i++)
{
item = 10 * item + a;
s += item;
}
printf("s = %d",s);
return 0;
}
这里还可以用 函数
#include <stdio.h>
int num(int a,int n)
{
int item=0;
for (int i = 0; i < n; i++)
{
item = 10 * item + a;
}
return item;
}
int main()
{
int a, n;
int s=0;
scanf("%d %d", &a, &n);
for (int i = 1; i <= n; i++)//这里一定要注意i不能从1开始,因为这里i如果和上面函数一样的话,不能输出
{
s += num(a,i);
}
printf("s = %d",s);
return 0;
}
还可以用数组
#include<stdio.h>
void the_num(int a, int n,int p[])
{
p[0] = a;
for (int i = 0; i < n-1; i++)//这里i的范围要小于n-1,不能小于n。因为小于n会出现数组越界。p[0]保存的是第一个数
{
p[i + 1] = p[i] * 10 + a;
}
}
int main()
{
int p[9] = { 0 };
int a, n;
int s = 0;
scanf("%d %d", &a, &n);
the_num(a, n, p);
for (int i = 0; i < n; i++)
{
s = s + p[i];
}
printf("s = %d\n", s);
return 0;
}