‘壹’ 用java编写程序,输出斐波那契数列的前10个数是什么
1 1 2 3 5 8 13 21 34 55
‘贰’ 用C语言编程 斐波那契数列:1,1,2,3,5,8,13…,输出前13项,每行输出5个数。
public class FeiBoMethod {
// 使用递归方法
private static int getSum(int num) {
if (num== 1 || num== 2)
return 1;
else
return getSum(num- 1) + getFibo(num- 2);
}
public static void main(String[] args) {
System.out.println("斐波那契数列的前13项为:");
for (int i = 1; i <= 13; i++) {
System.out.print(getSum(i) + " ");
if (i % 5 == 0)
System.out.println();
}
}
}
使用数组的方式实现
publicclassFeiBoMethod{
//定义数组方法
publicstaticvoidmain(String[]args){
intarr[]=newint[13];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契数列的前13项如下所示:");
for(inti=0;i<arr.length;i++){
if(i%5==0)
System.out.println();
System.out.print(arr[i]+"\t");
}
}
}
‘叁’ 编写一过程,计算出斐波那契数列的第n项并输出结果
裴波纳切数列:a(1)=1,a(2)=1,a(3)=2,a(4)=3,a(5)=5,.
用matlab 编程,代码如下:
% 计算 a(20)
k=20;
a(1)=1;
a(2)=1;
for i=3:k
a(i)=a(i-2)+a(i-1);
end
a(k)
运行结果: ans = 6765
你要计算第几项,只要改变对应的k就行了.
希望对你有帮助,满意请采纳,谢谢~
‘肆’ C语言 写程序,输出斐波那契数列的前20项,每行输出4个数
方法一for循环
publicclassFeiBoMethod{
定义三个变量方法
publicstaticvoidmain(String[]args){
inta=1,b=1,c=0;
System.out.println("斐波那契数列前20项为:");
System.out.print(a+"\t"+b+"\t");
因为前面还有两个1、1所以i<=18
for(inti=1;i<=18;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+"\t");
if((i+2)%4==0)
System.out.println();
}
}
}
方法2使用数组的方式实现
publicclassFeiBoMethod{
定义数组方法
publicstaticvoidmain(String[]args){
intarr[]=newint[20];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for(inti=0;i<arr.length;i++){
if(i%4==0)
System.out.println();
System.out.print(arr[i]+"\t");
}
}
}
递归实现
publicclassFeiBoMethod{
使用递归方法
privatestaticintgetSum(intnum){
if(num==1||num==2)
return1;
else
returngetSum(num-1)+getFibo(num-2);
}
publicstaticvoidmain(String[]args){
System.out.println("斐波那契数列的前20项为:");
for(inti=1;i<=20;i++){
System.out.print(getSum(i)+"\t");
if(i%4==0)
System.out.println();
}
}
}
‘伍’ C语言编程输出斐波那契数列第n项的值。多组,第一行输入一个n(n大于等于0小于等于10的10次方)
斐波那契数列中
F[x]=F[x-1]+F[x-2];
对于n不大,可以直接用递推来解决
#include<stdio.h>
intmain(){
intn,f1,f2,f3,i;
while(~scanf("%d",&n)){
f1=1,f2=1;
if(n<2){
printf("1 ");
continue;
}
for(i=3;i<=n;i++){
f3=(f1+f2)%66666;
f1=f2;
f2=f3;
}
printf("%d ",f3);
}
return0;
}
就可以了。
但是这道题目n比较大,是10^10
直接这么跑的话,时间有点接受不了
那么就要高一点手段了。。
可以写出一下两个等式:
F[n] =1*F[n-1]+1*F[n-2]
F[n-1]=1*F[n-1]+0*F[n-2]
这样就乐意用F[n-1] F[n-2]表示F[n] F[n-1]了
这么表示的意义在于,可以写成一个转移矩阵:
intquickpower(inta,intb){
intret=1;
while(b){
if(b&1)
ret=ret*a%66666;
a=a*a%66666;
b>>=1;
}
returnret;
}//只需要把上面的a改成矩阵就可以了
‘陆’ 编写程序,将斐波那契数列前20个数值按照每行4个排列输出
#include<iostream.h>
void
fibo()
{
int
num[20]={1,1};
for(int
i=2;i<20;i++)
{
num[i]=num[i-1]+num[i-2];
}
for(int
j=0;j<20;j++)
{
if((j+1)%4==0)
{
cout<<num[j]<<endl;
}
else
{
cout<<num[j]<<",";
}
}
}
void
main()
{
fibo();
}
‘柒’ 编写程序,实现下列要求 输入一个数字n,输出斐波那契数列中大于等于n的第一个数字,并指明该数字是第几个
#include<iostream>
using namespace std;
int main()
{
int f1, f2, t,i=1;
f1 = 0;
f2 = 1;
cout << "请输入t:";
cin >> t;
while(true)
{
f1+= f2;
i++;
if(f1>=t)
{
t=f1;
break;
}
f2+= f1;
i++;
if(f2>=t)
{
t=f2;
break;
}
}
cout<<"大于等于它的斐波那契数:"<<t<<"该数在斐波那契数列的项数是:"<<i<<endl;
system("pause");
return 0;
}
‘捌’ 编写一个C程序,用于打印斐波那契数列的前10个数
……
通常的教材上讲到递归时,引用“斐波那契数列”的例子,其实我感觉这是一个误导。“斐波那契数列”的递归解决是效率最低的。
【递归版】
//打印斐波那契数列的前10项
#include
<stdio.h>
#define
MAX
10
int
fib(int
n);
int
main(){
int
i;
printf("斐波那契数列的前10项是:\n");
for(i=1;i<=MAX;i++){
printf("%d\t",fib(i));
}
return
0;
}
int
fib(int
n){
return
n<3?1:(fib(n-1)+fib(n-2));
}
【迭代版】
//打印斐波那契数列的前10项
#include
<stdio.h>
#define
MAX
9
int
main(){
int
fib[MAX],i=2;
fib[0]=fib[1]=1;
printf("斐波那契数列的前10项是:\n%d\t%d\t",fib[0],fib[1]);
while(i<10){
fib[i]=fib[i-1]+fib[i-2];
printf("%d\t",fib[i]);
i++;
}
return
0;
}
‘玖’ c语言编程输出斐波那契数列前十项 帮个忙
//#include"stdafx.h"//vc++6.0加上这一行.
#include"stdio.h"
intmain(void){
inta,b,i;
printf("Theyareasfollows: ");
for(a=0,printf("%-4d",b=1),i=1;i<10;i++){
printf("%-4d",b+=a);
a=b-a;
}
printf(" ");
return0;
}
‘拾’ C语言编程:写出斐波那契数列的前40个数
#include <stdio.h>
int main()
{
int f1 = 1;
int f2 = 1;
int f3,i;
printf("%d %d ",f1,f2);
for(i = 1; i <= 38; i++)
{
f3 = f1 + f2;
printf("%d ",f3);
f1= f2;
f2= f3;
}
printf(" ");
return 0;
}
(10)编程输出斐波那契数列第9个数字扩展阅读:
在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
递推公式
斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2)
显然这是一个线性递推数列。
平方与前后项
从第二项开始,每个偶数项的平方都比前后两项之积少1,每个奇数项的平方都比前后两项之积多1。