C语言程序设计(第三版)何钦铭著 习题6-2
题目
使用函数累加由n个a构成的整数之和∶
输入两个正整数a和 n,求 a+aa+aaa+ aa…a(n个a)之和。
要求定义并调用函数 fn(a,n),它的功能是返回 aa…a(n个 a)。
例如,fn (3,2)的返回值是 33。试编写相应程序。
分析过程
输入
条件:输入两个正整数a和 n
输出
条件:求 a+aa+aaa+ aa…a(n个a)之和。
要求定义并调用函数 fn(a,n)
代码
#include <stdio.h>
#include <math.h>
int fn(int a, int n);
int main(void) {
/*定义变量*/
int a, n; /*存储输入的正整数a以及n*/
int sum=0; /*存储结果*/
/*赋值*/
printf("请输入正整数a以及n:\n"); /*输入提示*/
scanf("%d %d \n", &a, &n); /*输入并赋给变量*/
for(int i=1; i<=n; i++){
sum+= fn(a, i); /*获取第i个数:由i个a组成*/
}
printf("sum = %d\n", sum); /*输出结果*/
return 0;
}
int fn(int a, int n){ /*返回由n个a组成的数*/
int sum=0; /*定义存储n个a组成的数的变量*/
for(int i=1; i<=n; i++){ /*通过循环计算每个位置的数字,进行加和**/
sum+=a*pow(10, i-1); /*第i个位置的数在数字中应为10的i-1次幂乘a*/
}
return sum;
}