编写程序,通过函数求s=a+aa+aaa+...+aaa...a(0<a<10)共n项,最后一项有n个a。在主函数中输入a和n,调用函数获得结果,在主函数中输出结果。程序开头为void PutRes(void);int fun(int,int);int fun(int a;int n)
时间: 2024-03-10 08:47:10 浏览: 210
好的,我理解了你的要求,下面是代码实现:
```
#include <stdio.h>
void PutRes(void);
int fun(int a, int n);
int main() {
PutRes();
return 0;
}
void PutRes() {
int a, n;
printf("请输入 a 和 n 的值:\n");
scanf("%d %d", &a, &n);
printf("s = %d\n", fun(a, n));
}
int fun(int a, int n) {
int sum = 0, cur = a;
for (int i = 1; i <= n; i++) {
sum += cur;
cur = cur * 10 + a;
}
return sum;
}
```
你可以将上面的代码复制到 C 语言编译器中运行,输入 a 和 n 的值,即可得到结果。注意,输入的 a 的值应该在 0 到 10 之间,不包括 0 和 10。
相关问题
C语言程序设计:通过函数求s=a+aa+aaa+...+aaa...a(0<a<10)
可以通过以下函数来实现:
```c
#include <stdio.h>
int sum(int a, int n) {
int i, s = 0, t = 0;
for (i = 1; i <= n; i++) {
t = t * 10 + a;
s += t;
}
return s;
}
int main() {
int a, n;
printf("请输入a和n的值(0 < a < 10):");
scanf("%d%d", &a, &n);
printf("s = %d\n", sum(a, n));
return 0;
}
```
在函数中,我们使用 for 循环来计算 s 的值。首先定义两个变量 t 和 s,t 表示当前的数码,s 表示累加的和。在每次循环中,将 t 更新为上一次的 t 乘以 10 再加上 a,然后将 t 加到 s 上。最后返回 s 即可。
在主函数中,读入 a 和 n 的值,并调用 sum 函数计算 s。最后输出 s 的值即可。
补充程序,编写函数fun,求Sn=a+aa+aaa….+a...aa值
以下是一个求Sn的函数fun的示例代码:
```python
def fun(a, n):
"""
计算Sn=a+aa+aaa+...+a...aa的值
:param a: 数字a
:param n: a的位数
:return: Sn的值
"""
s = 0
for i in range(1, n+1):
s += int(str(a)*i)
return s
```
这个函数的参数包括数字a和a的位数n,返回值是Sn的值。它的实现方式是通过循环遍历计算a, aa, aaa, ... , a...aa的和。具体来说,我们把每个a乘以它所在的位数i,然后把它们相加即可。其中,我们可以通过将a转换为字符串,然后重复字符串i次,再将结果转换为整数来实现。
阅读全文