(c++求助)要求用递归实现级数求和“一分之一 + 二分之一 + 三分之一 + 四分之一 +...
答案:3 悬赏:20
解决时间 2021-02-20 10:46
- 提问者网友:醉归
- 2021-02-19 10:37
(c++求助)要求用递归实现级数求和“一分之一 + 二分之一 + 三分之一 + 四分之一 +.......n分之一”。 题目还要求是先定义一个求它的函数,在调用到主函数中去。也就是函数调用吧
最佳答案
- 二级知识专家网友:强势废物
- 2021-02-19 11:27
递归就是一个函数自己直接或者间接的调用了自己。
例如:
#include
int fun(int n)
{
if(n==1) return 1;
return n*fun(n-1);
}
int main()
{
printf("%d\n",fun(4));
return 0;
}
这个程序是求4的阶乘。fun()函数自己直接地调用了自己。也就是一层套一层,一层套一层。但是,这种调用层数是受控制的,就是fun里面的if语句,这是递归里面的结束条件,每个递归都必须有的,要不然你的递归就出不来了。
他就是一层一层深入,然后一层一层出来。楼主,自己试着用笔在纸上一步一步运行一下,不难的。
例如:
#include
int fun(int n)
{
if(n==1) return 1;
return n*fun(n-1);
}
int main()
{
printf("%d\n",fun(4));
return 0;
}
这个程序是求4的阶乘。fun()函数自己直接地调用了自己。也就是一层套一层,一层套一层。但是,这种调用层数是受控制的,就是fun里面的if语句,这是递归里面的结束条件,每个递归都必须有的,要不然你的递归就出不来了。
他就是一层一层深入,然后一层一层出来。楼主,自己试着用笔在纸上一步一步运行一下,不难的。
全部回答
- 1楼网友:茫然不知崩溃
- 2021-02-19 14:25
#include <iostream>
using namespace std;
double f(int n){
return n? f(n-1)+1./n: 0;
}
int main(){
int n;
cin >> n;
cout << f(n);
}
- 2楼网友:摧毁过往
- 2021-02-19 13:04
#include<stdio.h>
#include<stdlib.h>
double fun(int n)
{
if (n < 0)
{
return 0;
}
if (n == 1)
{
return 1;
}
else
{
return fun(n-1) + (double)1/n;
}
}
int main()
{
int k;
scanf("%d",&k);
printf("%lf",fun(k));
system("pause");
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯