已知:
f(n) = 1×2 + 2×3 + 3×4 + …… + n×(n+1)
编写递归函数,输入n
值,求f(n)。
函数原型:
int
sumn( int n, int *flag )
参数
n: 输入;参数 flag:测试编写是函数是否为递归。在自己编写的sumn函数中,写入以下语句:
(
*flag )++;
测试用例1: 测试输入 3 期待的输出 20
测试用例 2: 测试输入 0 期待的输出 Bad Input.
#include <stdio.h>
int sumn(int n,int *flag)
{
(*flag)++;
if(n==1)
return n*(n+1);
else
return n*(n+1)+sumn(n-1,flag);
}
int main()
{
int count=0,result;
int n=0;
scanf("%d",&n);
if(n>0)
{
result=sumn(n,&count);
printf("%d\n",result);
}
else
{
printf("Bad Input.\n");
}
return 0;
}
int sumn(int n,int *flag)
{
(*flag)++;
if(n==1)
return n*(n+1);
else
return n*(n+1)+sumn(n-1,flag);
}
int main()
{
int count=0,result;
int n=0;
scanf("%d",&n);
if(n>0)
{
result=sumn(n,&count);
printf("%d\n",result);
}
else
{
printf("Bad Input.\n");
}
return 0;
}
count作为一个递归的测试值,传入调用函数,最终输出的值和n是一样的
温馨提示:答案为网友推荐,仅供参考