`

java-网易面试题-求Fibonacci数列中第k个与前面所有数互质的数(除前面两个数 1,1 )

 
阅读更多
public class KthFibonaciPrime {

	/**
	 * 求Fibonacci数列中第k个与前面所有数互质的数(除前面两个数 1,1 )
	 * 假设k=1时,2为所求
	 */
	public static void main(String[] args) {

		KthFibonaciPrime k=new KthFibonaciPrime();
		System.out.println(k.getKthRelativelyPrime(5));
	}

	/*
	 * 设fi为Fibonacci数列的第i项
	 * 下面这个方法的问题在于:判断fi是否符合条件时,将fi与前面的i-1个Fibonacci数比较,要分别求出f3,f4,...f(i-1)
	 * 存在重复计算的问题
	 * 是否可以将Fibonacci数列提前算好,并存储在一个数组中?
	 */
	public int getKthRelativelyPrime(int k){
		int count=0;
		int i,j;
		for(i=3;;i++){
			int fi=getFibonaci(i);//判断fi是否与前面的所有Fibonac数互质
			for(j=3;j<i;j++){
				int fj=getFibonaci(j);
				if(!relativelyPrime(fi,fj)){
					break;//继续判断下一个fi是否符合
				}
			}
			if(j==i)count++;
			if(count==k){
				return fi;
			}
		}
	}
	/*
	 *get Nth Fibonaci number
	 *更合理的方法应该是利用矩阵
	 */
	public int getFibonaci(int n){
		if(n==1||n==2){
			return 1;
		}else{
			int n1=1,n2=1;
			for(int i=3;i<=n;i++){
				int tmp=n2;
				n2=n1+n2;
				n1=tmp;
			}
			return n2;
		}
	}
	
	public boolean relativelyPrime(int x,int y){
		return maxFactor(x,y)==1;
	}
	
	//最大公约数  a greatest common denominator
	public int maxFactor(int x,int y){
		if(x<y){
			int tmp=x;
			x=y;
			y=tmp;
		}
		if(x%y==0){
			return y;
		}
		else{
			return maxFactor(y,x%y);
		}
	}
}
0
0
分享到:
评论

相关推荐

    java代码实现斐波那契数列输出第n个数

    对于n大于1的情况,我们使用两个变量`fib`和`prevFib`分别存储当前斐波那契数和前一个斐波那契数,通过循环计算出第n个数。 在Java开发工程师的笔试中,斐波那契数列是一个常见的题目,因为它可以考察候选人的逻辑...

    java实现Fibonacci数列

    在这段代码中,我们使用了三个变量`a`、`b`和`c`来分别存储Fibonacci数列中的前两个数和当前数。通过循环,逐步更新这三个变量的值,直到计算出第`n`个数为止。 #### 3. 主程序示例 接下来,我们将展示如何使用上面...

    Fibonacci(斐波那契)数列的JAVA解法

    斐波那契数列的JAVA解法 斐波那契数列是一种特殊的整数序列,用于描述生物体的生长 RULE 及其他领域的变化规律。该序列以意大利数学家 Leonardo Fibonacci 的名字命名,故称为斐波那契数列。该序列的特点是每个数字...

    C语言程序设计-用函数求fibonacci数列前n项的和;说明:fibonacci数列为数列的第一项值为1,第二项

    C语言程序设计-用函数求fibonacci数列前n项的和;说明:fibonacci数列为数列的第一项值为1,第二项值也为1,从第三项开始,每一项均为其前面相邻两项的和;例如:当n=28时,运行结果:832039.c

    编写函数f,功能是用递归的方法求斐波那契数列的第n项

    【问题描述】编写函数f,功能是用递归的方法求斐波那契数列的第n项,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f求出斐波那契数列的第n项,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,...

    Fibonacci数列斐波那契数列PPT学习教案.pptx

    这个数列的第一个数是1,第二个数也是1,然后每个数都是前两个数的和。 2. Fibonacci数列的性质 Fibonacci数列有很多有趣的性质。例如,它是一个递推关系的数列,每个数都是前两个数的和。它也满足一个非常简单的...

    一个标注斐波那契数列的指标--K线数量 主图指标通达信指标.doc

    斐波那契数列指标在技术分析中的应用 本文档介绍了一个基于斐波那契数列的指标,用于股票市场的技术分析。该指标结合了指数移动平均线(EMA)和斐波那契数列,旨在帮助投资者更好地分析和预测股票市场的走势。 ...

    算法-数论- 斐波那契数列(Fibonacci).rar

    - 斐波那契数列中每项的和等于前后两项的乘积加一,即F(n) = F(n-1) * F(n+1) + 1。 - 斐波那契数列的偶数项可以被2整除,奇数项除了F(1)外都是奇数。 - 斐波那契数列的第n项可以表示为黄金分割比例φ的幂次形式...

    Fibonacci数列

    Fibonacci数列定义如下:第1,第2个数均为1,从第3个数开始,该数是其前面两个数之和。Fibonacci数列为:1,1,2,3,5,8,13,… 。编写递归函数,求Fibonacci数列的第n个数,并编写主函数,调用该递归函数,输出...

    java用非递归的方法打印Fibonacci数列

    Java 中的 Fibonacci 数列的定义是从 0 开始的,第一个 Fibonacci 数是 0,第二个是 1,之后每个数都是前两个数的和。例如,前五个 Fibonacci 数是 0、1、1、2、3。 在 Java 中,使用非递归的方法来打印 Fibonacci ...

    fengmin0722#algorithms-1#面试题10- I. 斐波那契数列1

    面试题10- I. 斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:斐波那契数列由 0 和 1 开

    C++ 源程序---求斐波那契数列

    这个压缩包包含两个C++源程序,分别使用递归法和非递归法来实现斐波那契数列的计算。接下来,我们将详细讨论这两个方法以及斐波那契数列的相关知识点。 斐波那契数列定义为:F(0) = 0,F(1) = 1,对于n &gt; 1,F(n) =...

    Labview实现递归:斐波那契数列

    在数学上它以递归的方式进行定义,指这样的一个数列:0、1、1、2、3、5、8、13、21、34、55、89、144……,即前两个数为分别为0和1,从第3项开始,每项的值都等于其前两项之和。斐波那契数列Fib(n)用公式表示为: ...

    Java 面试题全集

    程序中使用了两个变量f1和f2分别存储数列中的前两个数,通过循环逐步计算出后续的数。该程序展示了基本的循环结构和条件判断的使用。 【程序2】是一个判断素数的程序。素数是指只能被1和它本身整除的大于1的自然数...

    K阶斐波那契数列

    例如,我们可以创建一个大小为K的数组dp,其中dp[i]表示第i阶斐波那契数列的第n个数。初始时,dp[0]到dp[K-1]分别设置为斐波那契数列的前K个值(0, 1, ...)。然后,通过迭代更新dp数组中的每个元素,使其成为前K个...

    java基础面试题斐波那契数列

    java基础面试题斐波那契数列本资源系百度网盘分享地址

    JAVA经典算法40题面试题案例.pdf

    【JAVA经典算法40题面试题案例】 在Java面试中,算法题是考察候选人编程能力的重要环节。这里我们探讨三个常见的算法问题及其解决方案。 **问题1:斐波那契数列(Fibonacci Sequence)** 斐波那契数列是一个序列...

    求解fibonacci数列的前20项

    在迭代过程中,我们只需要维护两个变量,就可以轻松地计算出任意位置的Fibonacci数。 ### C语言实现Fibonacci数列 在给定的代码片段中,作者使用C语言实现了求解Fibonacci数列的前20项的功能。下面我们将详细解读...

    java 求fibonacci数列第1000项的值

    用java语言写的求求fibonacci数列第1000项的值,用的递归算法.是初学java练习递归的好素材.

    利用递归函数求解Fibonacci数列

    利用递归数列求解著名的Fibonacci数列的各项,用户可自定义输入要求的第n项,输入后即可求出从0到n每一项Fibonacci的值。

Global site tag (gtag.js) - Google Analytics