台州网站制作服务,淘宝友情链接怎么设置,网站建设与管理培训方案,企业网站建设规划可行性分析目录
1.求N的阶乘
2.求12...N的和
3.顺序打印数字的每一位
4.求数字的每一位之和
5.求斐波拉契数列 1.求N的阶乘
#xff08;1#xff09;解析题目意思
比如求5的阶乘#xff0c;符号表示就是5#xff01;#xff1b;所以5#xff01;5*4*3*2*1我们下面使用简单的…
目录
1.求N的阶乘
2.求12...N的和
3.顺序打印数字的每一位
4.求数字的每一位之和
5.求斐波拉契数列 1.求N的阶乘
1解析题目意思
比如求5的阶乘符号表示就是5所以55*4*3*2*1我们下面使用简单的递归完成本题看递归代码
public static int sub(int n) {if(n1) {return 1;}return n * sub(n-1);}
下面解析该代码的意思
2递归思路
拆解算法66*555*444*333*222*1其实也就是66*5*4*3*2*1。用代码表示整体可能有点乱需要读者静下心来理解 3完整代码
public static void main3(String[] args) {//递归求N的阶乘 int N 6;int sum sub(N);System.out.println(sum);}public static int sub(int n) {if(n1) {return 1;}return n * sub(n-1);}
2.求12...N的和
1解析题目意思
假设N3意思是求从1加到N的和123假设N4则需要求1234的和
2递归思路
我们这里以N3举例思路求123可以拆解成3求N2的和求N2的和可以拆解成2求N1的和得出递归代码
public static int sum(int n) {if(n1) {return 1;}return nsum(n-1);}
下面剖解递归思路 3完整代码 public static void main(String[] args) {//递归求和int N 3;int sum sum(N);System.out.println(sum);}public static int sum(int n) {if(n1) {return 1;}return nsum(n-1);}
3.顺序打印数字的每一位
1解析题目意思
比如打印1234要题目意思打印的结果就是1 2 3 4中间隔开
2解析递归思路
假设输入的数据是1234,打印出1 2 3 4思路要打印1 2 3 4就要先打印1 再打印2 3 4 打印2 3 4 就要先打印2 再打印3 4 打印3 4就要先打印3 再打印4利用/10去掉最低位%10得到最低位的思路进行得出递归代码 public static void print(int n) {if(n10) {System.out.print(n );return;}print(n/10);System.out.print(n%10 );}
解析递归思路 3完整代码
public static void main(String[] args) {//顺序打印数组的每一位int num 1234;print(num);}public static void print(int n) {if(n10) {System.out.print(n );return;}print(n/10);System.out.print(n%10 );}
4.求数字的每一位之和
1解析题目
比如给出数字1345就需要求1345的和
2解析递归思路
我们这里以求1234的每一位之和同样利用/10去掉最低位%10得到最低位的思路思路求1234的每一位之和可以求4123的每一位之和求123的每一位之和可以求312的每一位之和求12的每一位之和可以求12的每一位之和递归代码 public static int sumEvery(int n) {if(n1) {return n;}return n%10sumEvery(n/10);}
递归过程解析 3完整代码
public static void main(String[] args) {//求数字的每一位之和int N 1234;int sum sumEvery(N);System.out.println(sum);}public static int sumEvery(int n) {if(n1) {return n;}return n%10sumEvery(n/10);} 5.求斐波拉契数列
1了解斐波拉契数列
斐波那契数列其数值为1、1、2、3、5、8、13、21、34……这个数列从第3项开始每一项都等于前两项之和。
2递归思路求解
比如求第五个斐波那契数553第四个数2第三个数32第三个数1第二个数以此类推直到n2。递归部分代码 public static int fib(int n) {if(n2) {return 1;}return fib(n-2)fib(n-1);}
递归思路解析 递归完整代码 public static void main(String[] args) {//斐波拉契int N 8;int sum fib(N);System.out.println(sum);}public static int fib(int n) {if(n2) {return 1;}return fib(n-2)fib(n-1);}
3迭代思路
该思路也就是利用循环去做可以计算更大的斐波那契数利用某个数前面两个数相加从前面开始往后计算不断循环即可代码展示 public static void main(String[] args) {//迭代思路int N 5;int a 1;int b 1;int c 1;while(N2) {c ab;a b;b c;N--;}System.out.println(c);}
迭代思路解析 本次的五道递归题就结束了