例题:编写一个函数fun1(),用来求n个a(即aa...a)的值。在主函数中输入两个正整数a和n,调用函数fun1(),求a+aa+aaa+...+aa...a(n个a)的值,并输出结果。
思路分析
我们阅读完题意之后,代入一个数字试试看。
当a为1的时候,可以写出以下的式子:
1+11+111+1111+......;
然后求他们的和。
通过观察可以得到一个规律:
第一个数是一位数,第二个数是两位数,第三个数是三位数,依次增加位数,第四个数就是四位数;无论是第几个数,都是由同一个数字构成的。
我们用当a为1,n为3为例进行案例讲解
1+11+111=123;
代码如下
#include <stdio.h>
int fun1 (int n,int a){
int i,t=0,sum=0;
for(i=1;i<=n;i++){
t=10*t+a;//求每一个数的数字是多少
sum+=t;//累加求和
}//输出a+aa+aaa的值
return sum;
}
void main(){
int n,a,res;//定义变量
printf("请输入2个整数(n a):");
scanf("%d%d",&n,&a);//从键盘输入数字给n和a赋值
res=fun1(n,a);//调用子函数
printf("%d",res);//输出sum的值
}
代码运行结果如下