您的位置:首页 > 游戏 > 游戏 > 国家知识产权局招聘2023公告_国外的建筑设计网站_新网站seo_如何推销网站

国家知识产权局招聘2023公告_国外的建筑设计网站_新网站seo_如何推销网站

2025/2/24 4:54:14 来源:https://blog.csdn.net/m0_74741186/article/details/145776273  浏览:    关键词:国家知识产权局招聘2023公告_国外的建筑设计网站_新网站seo_如何推销网站
国家知识产权局招聘2023公告_国外的建筑设计网站_新网站seo_如何推销网站

前言:

内容:

n的阶乘的公式,什么情况,怎么没有听懂

我咋知道n的阶乘公式啊

就是这个,老师说知道n的阶乘公式就容易写递归函数了,算了没阿关系

n!(fac(n))
1  ,n<=1
n*fac(n-1)
计算n的阶乘 ,循环的方式 
int fac(int n)
{if(n <= 1)return 1;elsereturn n*fac(n-1);} int main()
{int n = 0;scanf("%d", &n);int ret = fac(n);printf("%d", ret);return 0;} 

可以用循环的方式写

int main()
{int n = 0;int i = 0;int ret = 1;scanf("%d", &n);for(i=1; i <= n; i++){ret = ret * i;}printf("%d", ret);return 0;
}

用函数的方式写递归,主要写功能

很奇怪,就是主函数里的for循环里的变量,出了作用域还没有失效,就是出了for循环,他还将值带出来了,难道我对作用域了解的还是不够清楚,在去了解一下

int fac(int n)
{int i = 0; //将功能所用到的变量都初始化 int ret =1;for(i=1; i <= n; i++)  //这就是功能里的变量,然后就是要初始化这里的 {ret = ret * i;}	return ret; 
}

斐波那契数列,这个我还不知道是什么意思

就是求数列,不晓得,麻烦,就是猜解一个数字,直到那个数字为1,或者是2,2就是1,

然后把1全部加起来

这里需要考虑的是,就是自定义函数定义的count,如果要打印的话,这个就需要是全局变量,但是放到主函数,自定义函数又找不到,所以就放到了最上面

用递归的方法表示为

#include <stdio.h>int count = 0;
//利用递归求解斐波那契数列
int Fib(int n)
{if(n ==3)count++;if(n<=2)return 1;elsereturn Fib(n-1) + Fib(n-2);} int main()
{int n = 0;scanf("%d", &n);int relt = Fib(n);printf("%d\n", relt);printf("%d\n", count);return 0;} 

用迭代的方式解决斐波那契数列

就是有一定的规律的

1 1 2 3 5 8 13 21 34 55
a b c   //第一次a b c   //第二次,就是需要把上面的的b赋值到a,然后c赋值到b//然后加起来,就是第二次的c了,然后反复循环就可以了

就是钱前两个数加起来的和,就是后面的数了

也就是说前面两个数是确定的,然后就是c = a+b

然后就需要改变a,b的值,

用的for循环,好像也可以,都是从3开始的,然后就是3循环1次,4循环两次

int Fib(int n)
{int i = 0;int a = 1;int b = 1;int c = 0;for(i = 3; i <= n; i++){c = a+b;a = b;b = c;}return c;
}int main()
{int n = 0;scanf("%d", &n);int m = Fib(n);printf("%d", m);return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com