用c++递归求Sn=a+aa+aaa+aaaa+…+aa…a(n个a)之值,其中a是一个数字,n表示a的位数。
时间: 2023-06-10 12:04:10 浏览: 116
输入两个正整数a和n,求a+aa+aaa+…+aa…a(n个a)之和
好的,让我来回答您的问题。
以下是用C语言递归求Sn=a aa aaa aaaa … aa…a(n个a)之值的代码:
```
#include <stdio.h>
int sum_a(int a, int n) {
if (n == 1) {
return a;
} else {
int prev = sum_a(a, n-1);
int cur = prev * 10 + a;
return prev + cur;
}
}
int main() {
int a, n;
printf("请输入a和n:\n");
scanf("%d %d", &a, &n);
int result = sum_a(a, n);
printf("Sn的值为:%d\n", result);
return 0;
}
```
在这段代码中,sum_a函数是递归求解Sn的函数,当n为1时,Sn的值为a。当n大于1时,我们递归地调用sum_a函数来求解前一个数,然后用前一个数作为基础计算当前的数,并将前一个数和当前数相加得到Sn的值。
通过该程序,可以输入任意的数字a和n,得到相应的Sn的值。
阅读全文