c语言,输入两个正整数 a 和 n, 求 a+aa+aaa+aa…a(n 个a)之和。要求定义并调用函数 fn(a,n),它的功能是返回 aa…a(n 个 a) 例如,fn(3,2)的返回值是 33。试编写相应程序。 【样例输入】 3 2 【样例输出】 sum=36
时间: 2023-10-11 16:09:39 浏览: 24
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
// 定义并实现函数 fn
int fn(int a, int n) {
int res = 0;
int base = 1;
for (int i = 0; i < n; i++) {
res += base * a;
base = base * 10 + 1;
}
return res;
}
int main() {
int a, n;
scanf("%d%d", &a, &n);
int res = 0;
int base = a;
for (int i = 0; i < n; i++) {
res += base;
base = base * 10 + a;
}
printf("sum=%d", res);
return 0;
}
```
首先定义一个函数 fn,用来返回 aa…a(n 个 a) 的值,其中使用一个变量 base 来记录每次 aa…a 的值,在循环中每次把 base 乘以 10 并加上 a,同时使用另一个变量 res 来记录 aa…a 之和。
然后在主函数中,输入 a 和 n,使用一个循环计算 a + aa + ... + aa...a 之和,每次更新 base 的值,最后输出结果即可。
相关问题
输入正整数a,n输出a+aa+aaa+…的和c语言
是输入正整数a,n输出a+aa+aaa+…的和的C语言代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int a, n, sum = 0, term = 0;
printf("请输入正整数a和n的值:\n");
scanf("%d %d", &a, &n);
for (int i = 1; i <= n; i++) {
term = term * 10 + a;
sum += term;
}
printf("a+aa+aaa+...的和为:%d\n", sum);
return 0;
}
```
c语言输入两个正整数a和n 求a+aa+aaa(n个a之和)函数fn(a,n)的功能是返回aa..a
函数fn(a,n)的功能是返回aa..a,其中a重复n次组成的数字。例如,fn(2,3)=222。下面是完整的代码实现:
```c
int fn(int a, int n) {
int result = 0;
for (int i = 0; i < n; i++) {
result = result * 10 + a;
}
return result;
}
```
同时,题目还要求实现函数SumA(a,n),该函数返回a + aa + aaa + ...(n个a之和)。下面是完整的代码实现:
```c
int SumA(int a, int n) {
int result = 0;
for (int i = 1; i <= n; i++) {
result += fn(a, i);
}
return result;
}
```
如果输入a = 2,n = 3,则fn(a,n)= 222,SumA(a,n)= 2 + 22 + 222 = 246。