java算法-斐波那契数列四吧(公式递推,不定方程求解)
来源:互联网 发布:kitti数据集如何使用 编辑:程序博客网 时间:2024/04/29 09:17
斐波那契数列四吧
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
斐波那契数列为:0,1,1,2,3,5,8,13....,常规递推公式为f(n)=f(n-1)+f(n-
2);
但这里不一样的是,我们的前两个数字不一定是0,1;
也就是说,斐波那契数列的前两个数字是随机数(保证是非负整数)。下面我们
开始吧,我会告诉你斐波那契数列的第20项的值m,请你判断是否会有这样的数列
存在。
对了,你要保证数列的每一项都是整数哦
输入第一行呢,按照惯例我们输入一个数字N,表示测试数据组数。
接下来肯定就有N行了。。
每行包含一个整数m(m<10000000),表示数列的第20项的值。输出如果存在这
样的数列呢,输出该数列的第一项和第二项的值
else 输出“No answer”
每组数据输出后换行。
样例输入1
1000000
样例输出154 144
/*
* 斐波那契数列四吧
* 思路:有题意知
* f(3)=f(1)+f(2)
* f(4)=f(1)+2f(2)
* f(5)=2 3
* f(6)=3 5
* .....
* 这里可以写个递推推程序求出f(20)公式
*/
public class Main {
public static void main(String[] args) {
int a = 1, b = 1, temp;
for (int i = 3; i <= 20; i++) {
System.out.println(i + "=" + a + " " + b);
temp = b;
b = a + b;
a = temp;
}
}
}
运行结果:
3=1 1
4=1 2
5=2 3
6=3 5
7=5 8
8=8 13
9=13 21
10=21 34
11=34 55
12=55 89
13=89 144
14=144 233
15=233 377
16=377 610
17=610 987
18=987 1597
19=1597 2584
20=2584 4181
/*
* 这里可以看到f(20)=2584*f(1)+4181*f(2)
* 做到这里大家明白此题了吧,就是不定方程求解问题
* 把上边的公式变换得
* f(2)=(f(20)-2584f(1))/4181
* 然后判断f(2)是否是整数
* 程序如下:
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int f1, f2, f20, temp;
while (n-- > 0) {
f20 = sc.nextInt();
f1 = 0;
while (true) {
temp = f20 - 2584 * f1;
// f1过大跳出循环没有答案
if (temp < 0) {
System.out.println("No
answer");
break;
} else {// 判断f2是否为整数
if (temp % 4181 == 0) {
f2 = temp / 4181;
System.out.println(f1
+ " " + f2);
break;
}
}
f1++;
}
}
sc.close();
}
}
- java算法-斐波那契数列四吧(公式递推,不定方程求解)
- Java算法--递推算法 求解兔子产子问题或斐波那契数列问题
- 杭电2044--一只小蜜蜂...--(递推求解)斐波那契数列应用
- 递推算法(顺推)- 斐波那契数列用C++实现
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- c++socket代码
- 成为Java GC专家系列(二)——监控Java垃圾回收
- 字典树模板
- ORACLE监听日志文件小问题引发的数据库大血案
- 一条语句实现:乘法表打印
- java算法-斐波那契数列四吧(公式递推,不定方程求解)
- 成为Java GC专家系列(一) ——Java垃圾回收机制
- 醉美~~三河中学
- Android App优化之电池省着用
- JVM致命错误日志(hs_err_pid.log)
- 如何快速添补面要素之间的缝隙
- Android 监听app前台、后台状态切换的实现方案
- Java深度历险(二)——Java类的加载、链接和初始化
- 作弊发牌靴