给定两个均不超过 9 的正整数 a 和 n,要求编写函数求 a + aa + aaa + ⋯ + aa⋯a(n 个 a)之和。
函数接口定义:
int fn( int a, int n );
int SumA( int a, int n );
其中函数 fn 须返回的是 n 个 a 组成的数字;SumA 返回要求的和。
裁判测试程序样例:
#include <stdio.h>
int fn( int a, int n );
int SumA( int a, int n );
int main()
{
int a, n;
scanf("%d %d", &a, &n);
printf("fn(%d, %d) = %d\n", a, n, fn(a,n));
printf("s = %d\n", SumA(a,n));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
2 3
输出样例:
fn(2, 3) = 222
s = 246
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/12/exam/problems/309
提交:
题解:
#include <math.h>
/*
* 返回 n 个 a 组成的数字
*/
int fn(int a, int n) {
int result = 0;
for (int i = 0; i < n; i++) {
result += a * (int) pow(10, i);
}
return result;
}
/*
* 求 a + aa + aaa + ⋯ + aa⋯a(n 个 a)之和
*/
int SumA(int a, int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += fn(a, i);
}
return sum;
}