这几天看到一个题觉得有点意思,不仔细想一下就会掉进沟里。
正好这几天也学习了调用函数,就借这道题说一下。
输入两个正整数 a 和 n,求 a+aa+aaa+aa…a(n 个 a)之和。要求定义并调用函数 fn(a,n),
它的功能是返回 aa…a(n 个 a)。例如 fn(3,2)的返回值是 33。
输入输出示例:
Input a: 8
Input n: 5
sum=98760
刚看题时,可能觉得像题中说的那样,随便输入一个数,就可以了。如果这样的话,那可能就没想到,输入的数不一定是个位数,可能是两位数,三位数甚至是更多位的数,那么这时就需要先考虑输入数的位数,比如输入20,那么下一个数就应该是2020,所以这道题的就应该包括判断位数的过程。
用上函数调用的话:
#include<stdio.h>
int fn(int a, int n);//自定义一个函数,如果紧接着是自定义函数的函数体,那么最后的**;**可以去掉。这里没这样做。
int main()
{
int a,n,sum,i;
sum=0;
printf("Input a:");
scanf("%d",&a);
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+fn(a,i);/*先对sum赋值0,便于对数累加。然后调用函数fn(),fn(int a, int i)中的**i**是因为fn()
返回的数是n个a,所以每次返回的值是不同的。*/
}
printf("sum=%d",sum);
return