求程式码:斐波那契数列:1,1,2,3,5,8,13,21…. 用java程式输出前100个数.希望用char阵列储存大数。

求程式码:斐波那契数列:1,1,2,3,5,8,13,21…. 用java程式输出前100个数.希望用char阵列储存大数。
求程式码:斐波那契数列:1,1,2,3,5,8,13,21…. 用java程式输出前100个数.希望用char阵列储存大数。
方法很多,这是一种 int a=0; int b=1; System.out.print("斐波那契数列:1,"); for(int i=0;i<10;i++){ 斐波那契数列加到后面数字会非常大会超出int型的范围,想执行自己替换吧 int c=a+b; System.out.print(c+","); a=b; b=c; }使用阵列输出斐波那契数列的前20个数字
public static int[] lieShu(int n) { int[] r = new int[n]; int preInt1 = 0; int preInt2 = 1; int currentInt = 0; for (int i = 1; i <= n; i++) { currentInt = preInt1 + preInt2; preInt2 = preInt1; preInt1 = currentInt; r[i-1] = currentInt; System.err.print(currentInt+" "); } return r; } 怎么输出阵列元素就不用写了吧斐波那契数列:1 1 2 3 5 8 13 21 34 55.
斐波那契数列通项公式推导方法
Fn+1=Fn+Fn-1
两边加kFn
Fn+1+kFn=(k+1)Fn+Fn-1
当k!=1时
Fn+1+kFn=(k+1)(Fn+1/(k+1)Fn-1)
令
Yn=Fn+1+kFn
若
当k=1/k+1,且F1=F2=1时
因为
Fn+1+kFn=1/k(Fn+kFn-1)
=>
Yn=1/kYn-1
所以
Yn为q=1/k=1(1/k+1)=k+1的等比数列
那么当F1=F2=1时
Y1=F2+kF1=1+k*1=k+1=q
根据等比数列的通项公式
Yn=Y1q^(n-1)=q^n=(k+1)^n
因为k=1/k+1=>k^2+k-1=0
解为 k1=(-1+sqrt(5))/2
k2=(-1-sqrt(5))/2
将k1,k2代入
Yn=(k+1)^n
,和Yn=Fn+1+kFn
得到
Fn+1+(-1+sqrt(5))/2Fn=((1+sqrt(5))/2)^2
Fn+1+(-1+sqrt(5))/2Fn=((1-sqrt(5))/2)^2
两式相减得
sqrt(5)Fn=((1+sqrt(5))/2)^2-((1-sqrt(5))/2)^2
Fn=(((1+sqrt(5))/2)^2-((1-sqrt(5))/2)^2)/sqrt(5)
VB程式斐波那契数列程式码
VB程式斐波那契数列程式码
m a,b,c i as integer
a =1
b=1
for i = 3 to 10
c = a b
a=b
b=c
debug.print c
next i
C++编写一个程式,输出100以内的斐波那契数列 1 1 2 3 5 8 13…
#include <stdio.h>
int main()
{
int first = 1;
int second = 1;
int third = 0;
printf("%dn", first);
printf("%dn", second);
for (;;)
{
third = first + second;
if (third > 100)
{
break;
}
printf("%dn", third);
first = second;
second = third;
}
getchar();
return 0;
}
数列1,1,2,3,5,8,13,21,34,55……斐波那契数列前2010个数中共有___个偶数
很显然斐波那契数列中的数是按照:奇数 奇数 偶数 、奇数 奇数 偶数……这样的顺序排列的
即两个奇数相加得到偶数,而偶数加奇数得到奇数,
因此每3个数中有一个偶数,
所以前2010个数中共有2010/3 =670个偶数
数列1,1,2,3,5,8,13,21,34,55……斐波那契数列前800个数中共有___个奇数
A(n+2)=A(n+1)+An
A1=1 A2=1 为奇数 则A3为偶数
A4为奇数 ,A5为奇数
A6为偶数
所以规律为奇,奇,偶,奇,奇,偶…………。
3k+1,3k+2 为奇数,
3k为偶数
800/3=266 +2/3
偶数的有266个,奇数的有800-266=534
斐波那契数列:1、1、2、3、5、8、13、21、34、55、89、144、233…… 求输出小于1000的数列之和
public class Fibonai {
public static int abc(int number){
if(number<=2){
return 1;
}else{
return abc(number-1)+abc(number-2);
}
}
这个方法算出斐波那契数列的第n项,再写个回圈计算就行了
public static void main(String[] args ){
System.out.println("输入x");
Scanner sca1 = new Scanner(System.in);
int x = sca1.nextInt();
System.out.println("输入y");
Scanner sca2 = new Scanner(System.in);
int y = sca2.nextInt();
int sum=0;
for(int i=x;i<=y;i++){
sum +=abc(i);
}
System.out.println(sum); }
}
如果sum 值过大超过21个亿int 是不够的,可以换成long,或者用大型资料。
如果计算输出小于1000只需要判断sum是否大于等于1000 大于就减去当前数列的值输出就可以了。
著名的斐波那契数列:1,1,2,3,5,8,13,21…… 该数列的第1000个数是多少?
把每项都除以3
得余数分别是:1、1、2、0、2、2、1、0、1、1、2、0、2、2、1、0……
可发现余数以【1、1、2、0、2、2、1、0】回圈,8个一回圈
2008÷8=251
也就是说,第2008个余数是第251个回圈的最后一个数
这个数是0
希望我的回答对你有帮助,采纳吧O(∩_∩)O!
满意请采纳。
用java编写程式,输出斐波那契数列的前10个数是什么?
1 1 2 3 5 8 13 21 34 55
public class Fibonai
{
public static void main(String args[])
{
int i=1,j=1;
for(int n=1;n<=5;n++)
{
System.out.print(" "+i+" "+j);
i = (int)(i+j);
j = (int)(i+j);
}
System.out.println();
}
}
1 1 2 3 5 8 13 21 34 55
我给你大概解释一下吧,这个回圈一共回圈5次,每次写出斐波那契数列中的2个数,因此一共有10个数
- 上一篇
历史上的玄奘是什么样的人 历史上真实的玄奘西游:险些成魔鬼女神的祭品!
历史上真实的玄奘西游:险些成魔鬼女神的祭品! 公元664年,农历4月14日,一名高僧的葬礼正在唐帝国都城长安举行。送葬的队伍从城南的皇家寺院大慈恩寺出发,中途经过长安最主要的街道,沿途簇拥了上百万的送
- 下一篇
30岁下岗了怎么办 我是1991年上的班,到2006年下岗了,中间交了15年养老保险,请问我到退休年龄能领多少钱!
我是1991年上的班,到2006年下岗了,中间交了15年养老保险,请问我到退休年龄能领多少钱 我是1991年上的班,到2006年下岗了,中间交了15年养老保险,请问我到退休年龄能领多少钱1、每个地方的