#include iostream
网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于成都企业网站建设,高端网页制作,对成都边坡防护网等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业seo优化优化,H5建站,响应式网站。
#include iomanip
using namespace std;
int add(int n);
int main()
{
int i=100;
int b;
b=add(100);
coutbendl;
}
int add(int n)
{
if(n==1)
return 1;
else
return n+add(n-1);
},利用add()函数进行递归,这是个从1加到n的递归函数
// 1 第一天
// 3 (2+1) 第二天
// 6 (3+2+1) 第三天
// 10 (4+3+2+1) 第四天
这是一个递归调用
左边执行完了再执行右边,你可以通过调试来验证答案哦
原因:函数调用 运算符"()"的优先级高于算术运算符 "+"。递归函数会一层层展开,直到a == 2 或 a == 1结束。
代码中有两点要注意下:
return 1 与 return 2 后面的 printf("\n"); 不会被执行。因为return语句会结束该被调函数。
main()函数最后要有返回值。
#includestdio.h
int s=0;
main()
{
int sum(int n);
int n;
printf("please input n:"); /*输入要输数的个数*/
scanf("%d",n);
sum(n);
printf("sum = %d\n",s);
}
int sum(int n)
{
int m;
if(n==0)return 0;
else
{
printf("please input a num:");
scanf("%d",m);
s+=m;
return sum(n-1);
}
}
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语言函数