实验6-3 使用函数求特殊a串数列和(20 分)

实验6-3 使用函数求特殊a串数列和(20 分)

给定两个均不超过9的正整数$a$和$n$,要求编写函数求$a+aa+aaa++⋯+aa⋯a$($n$个$a$)之和。

函数接口定义:

1
2
int fn( int a, int n );
int SumA( int a, int n );

其中函数fn须返回的是na组成的数字;SumA返回要求的和。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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;
}

/* 你的代码将被嵌在这里 */

输入样例:

1
2 3

输出样例:

1
2
fn(2, 3) = 222
s = 246
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include<math.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;
}
int fn( int a, int n )
{
int sum=0,i,b=1;
for(i=0;i<n;i++)
{
//b=b*10;
sum=sum+a*b;
b=b*10;
}
return sum;
}
int SumA( int a, int n )
{
int sum1=0,sum2,i;
for(i=1;i<n+1;i++)
{
sum2=fn(a,i);
sum1=sum1+sum2;

}
return sum1;
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×