十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
C语言:递归求和求f(n)的值可以采用以下的代码:
目前创新互联已为超过千家的企业提供了网站建设、域名、虚拟主机、绵阳服务器托管、企业网站设计、东营区网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
#includestdio.h
int sum(int n)
{
if(!n)
return 0;
else
return n + sum(n - 1);
}
int main()
{
int n;
scanf("%d",n);
printf("%d\n",sum(n));
return 0;
}
扩展资料:
数学函数
char *ecvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串
char *fcvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串
char *gcvt(double value,int ndigit,char *buf),将数value转换成字符串并存于buf中,并返回buf的指针
char *ultoa(unsigned long value,char *string,int radix),将无符号整型数value转换成字符串并返回该字符串,radix为转换时
double _matherr(_mexcep why,char *fun,double *arg1p,double *arg2p,double retval),用户修改数学错误返回信息函数(没有必要使用)
unsigned int _clear87() 清除浮点状态字并返回原来的浮点状态
void _fpreset() 重新初使化浮点数学程序包
unsigned int _status87() 返回浮点状态字
参考资料来源:百度百科-C语言函数
#include stdio.h
#include stdlib.h
int b=0;
int sum(int *a,int n)
{
int temp;
if(0==n)
return 0;
else
{
temp=sum(a,n-1);
b=b+a[n-1];
}
return b;
}
int main (void)
{
int i;
int a[6]={0};
printf("请输入一组数据:");
for(i=0;i=5;i++)
{
scanf("%d",a[i]);
}
printf("\n\n");
printf("所有元素之和num=%d",sum(a,6));
printf("\n\n");
system("PAUSE");
return 0;
}
#include stdio.h
int add(int *a, int n)
{
if(n==1) return a[0];
return a[0]+add(a+1, n-1);
}
int main()
{
int a[5]={1,3,5,7,9};
printf("%d\n", add(a,5));
return 0;
}
#include stdio.h
int recr(int n) // 递归函数
{
if (n = 1) return n; // 递归退出条件
return n + recr(n - 1);
}
int main()
{
int n = 0;
printf(" n = ");
scanf("%d", n);
printf("sum = %d\n", recr(n));
return 0;
}
执行结果:
n = 100
sum = 5050
不过说实话,这种问题真心不适合用递归来解决,反而会干扰初学者对递归和循环的理解