java递归算法
发布日期:2019-02-03 13:17:38编辑:音乐人
概括:这道题是国拐拥同学的课后练习题,主要是关于java递归算法,指导老师为卓老师。
题目:java递归算法
解:#include
int GetFibonacci(int n)
{
if (n == 1 || n == 2) return 1;
else return GetFibonacci(n-1)+GetFibonacci(n-2);
}
void main()
{
int n;
scanf("%d",&n);
for (int i = 1; i
举一反三
例1: 【java程实现Fibonacci数列.Fibonacci数列的定义为:F1=1,F2=1,…Fn=Fn-1+Fn-2(n>】
思路提示:
import java.util.ArrayList;
import java.util.List;
public class Fibonacci {
public static void main(String[] args) {
List list = new ArrayList();
int num = 15;
for(int i = 1; i
例2: 【Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1.当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少.输入格式输入包含一个整数n.输出格式输出一行,包含一个整数,表示Fn除以10007】
思路提示:
//用的递归的算法!
import java.util.Scanner;public class Main {
public static void main(String[] args)
{
Scanner s=new Scanner(System.in);
int n=s.nextInt();
int sum=F(n);
System.out.print(sum%10007);
}
public static int F(int n)
{
if(n==1||n==2)
{
return 1;
}
else
{
return F(n-1)+F(n-2);
}
}
}
这样写.你复制再提交,会告诉你运行超时的.
例3: 分别用递归和非递归方法求取Fibonacci数列.
思路提示:
//fibonacci数列:1 1 2 3 5 8 13 21 34 55...
#include
double fib_val[100]={0};
double fibonacci_1(int n)//递归,计算时间长,n最好不超过30
{
if(n
例4: C语言:采用递归调用函数方法计算Fibonacci数列的前20项
思路提示:
#include
#define N 20
main(){
int f(int n);
int i;
for(i=1;i
例5: 【菲波那契(Fibonacci)数列的第一项是0,第二项是l,以后各项都是前两项的和,试用递归算法和非递归算法各编】[数学练习题]
思路提示:
首先 你得注意 如果你求的斐波那契数的第几项项数较大 就需用到高精度
以下程序仅适用于“无需高精度”的情况:
此为递归算法:
#include
using namespace std;
int work(int x)
{
if(x==1)return 0;
else if(x==2)return 1;
else return work(x-1)+work(x-2);
}
int main(void)
{
int i;
cin>>i;
couti;
a[1]=0;a[2]=1;
for(j=3;j
相关思考练习题:
题1:java中递归算法是什么怎么算的?
点拨:一、递归算法基本思路: Java递归算法是基于Java语言实现的递归算法。递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法表示问题的解。递归往往能给我们带来非常...
题2:(Java 递归实现)一列数据的规则如下:1、1、2、3、...
点拨:public class DiGui{ public static void main(String[] args){ System.out.println(fib(30)); } public static int fib(int n) {if (n == 1 || n == 2) {return 1;} else {return fib(n - 1) + fib(n - 2);}}}
题3:java递归算法的例子?
点拨:十进制整数转二进制字符串的递归写法: public String dtob(int n) { if (n == 0 || n == 1) { return Integer.toString(n); } else { return dtob(n / 2) + Integer.toString(n % 2); } }
题4:用java递归算法求一个数字的阶乘
点拨:用递归算法求一个数字的阶乘的程序如下: public class JieCheng { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("请输入一个整数:"); int n = in.nextInt(); System.out.println(n+"!="+...
题5:java 请用 递归 实现 1 至 100 的和
点拨:public class Test { public static void main(String[] args) { System.out.println(dg(100)); } static int dg(int i) { int sum; if (i == 1) return 1; else sum = i + dg(i - 1); return sum; } }