更多“一列数的规则如下:1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。”相关问题
  • 第1题:

    下列程序的功能是输出如下数列的前20项,按每行5个数的形式输出。

    1,1,2,3,5,8,13,…

    程序代码如下,请填空。

    A=1

    B=1

    I=3

    ?A,B

    DO WHILE( _______ )

    C=A+B

    T=B

    B=A+B

    _______

    ?? C

    If _______ Then

    ?

    EndIf

    I=I+1

    ENDDO


    正确答案:I=20 I=20 I%5=0
    I=20 I=20 I%5=0 解析:通过分析可知,该数列从第3项开始,每一项的值是前面两项的值的和。一共要求前面的20项,因此可通过一个循环来实现,由于只求前20项,故循环条件应是I(项数)的值小于等于20。在循环中应求出第1项(C=A+B),并为求I+1项作好准备,即要让刚才的B成为下一个A,刚才的C成为下一个B,故[10]处应填“A=T”。“??”命令在输出数据的时候不换行,为了在每输出5个数据后分行,可根据项数I的值来进行控制,当I的值能够被5整除时,换到下一行进行输出,换到下一行用命令“?”来实现,故(11)处应填“I%5=0”。

  • 第2题:

    在考生文件夹下有“db4.mdb”数据库。

    创建实现求“水仙花数”的模块“模块1”,实现求“水仙花数”并用消息框输出。“水仙花数”是指一个三位数,其各位数字的立方和恰好等于该数的本身。例如 153=1*1*1+5*5*5+3*3*3。要求:“水仙花数”用DO While循环实现。运行该模块的结果如图所示。


    正确答案:

  • 第3题:

    递归算法题2

    第1 个人10,第2 个比第1 个人大2 岁,依次递推,第8 个人多大?


    正确答案:

     

    package cn.itcast;
    import java.util.Date;
    public class A1 {
    public static void main(String [] args)
    {
    System.out.println(computeAge(8));
    }
    public static int computeAge(int n)
    {
    if(n==1) return 10;
    return computeAge(n-1) + 2;
    }
    }
    public static void toBinary(int n,StringBuffer result)
    {
    if(n/2 != 0)
    toBinary(n/2,result);
    result.append(n%2);
    }

  • 第4题:

    一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。(C#语言)


    正确答案:
     

  • 第5题:

    1:1 1 2 3 5 8??????

    使用递归算法,求出第30位。


    正确答案:
     

  • 第6题:

    下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、…… 例如,若给n输入7,则该项的斐波拉契数值为13。 请改正程序中的错误,使它能得出正确结果。 注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。


    正确答案:
    (1)去掉分号
    (2)case l:case 2:return l;
    【考点分析】
    本题考查:switch语句,其一般形式为:
    switch(表达式){
    case常量表达式1:语句l;
    case常量表达式2:语句2;
    case常量表达式n:语句n;

    其中switch(表达式)后不应该带有”;”,同时case语句常量后应该是”:“。
    【解题思路】
    c语言中,sw迎ch语句之后不能有分号,并且case语句常量后应用的是冒号。

  • 第7题:

    有10个连续奇数,第1个数等于第10个数的11/5,求第1个数?( )

    A.5

    B.11

    C.13

    D.15


    正确答案:D
    因为是10个连续奇数,且第一个比第10个数小,所以这10个数构成公差为2的递增等差数列。设最小项为a,则根据题意,可知:(11/5)·a=a+(10-1)× 2。解得:a=15。选D。

  • 第8题:

    以下()是斐波那奇数列。

    • A、1、3、5、7、9、11、13…
    • B、2、3、5、7、12、19、31...
    • C、2、3、5、8、13、21、34...
    • D、2、3、6、8、14、23、37…

    正确答案:C

  • 第9题:

    若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用__(1)__算法,因为__(2)__。空白(2)处应选择()

    • A、递推的效率比递归高
    • B、递归宜于问题分解
    • C、递归的效率比递推高
    • D、递推宜于问题分解

    正确答案:A

  • 第10题:

    下面()组数列是斐波那契数列。

    • A、1,1,2,3,5,8,13,21,34,55,„„
    • B、1,2,3,4,5,6,7,8,9,10,11,„„
    • C、1,2,4,8,10,20,40,80,160,320„

    正确答案:A

  • 第11题:

    单选题
    若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用__(1)__算法,因为__(2)__。空白(1)处应选择()
    A

    先递归后递推

    B

    先递推后递归

    C

    递归

    D

    递推


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    在1,1,2,3,5,8,13,21,34……这一斐波那契数列中,第12项是()。
    A

    143.0

    B

    144.0

    C

    145.0

    D

    146.0


    正确答案: D
    解析: 暂无解析

  • 第13题:

    如何用c语言实现如下题目 顺序是三角形的数按顺时针往里钻 就像钻牛角尖一样

    当n=3时 输出1 2 3当n=4时 输出 1 2 3 4 9 10 5 8 6 7当n=5时 1 2 3 4 5 12 13 14 6 11 15 7 10 8 9。。。。。。。。。。。


    可以这样考虑:通过观察当输入N的时候恰好有N*(N+1)/2个数,即1~N*(N+1)/2,采用二维数组来存储这些数据,则只需要将1~N*(N+1)/2个数依次填到二维数组对应的位置即可。下面就是用for语句实现的该程序: //c语言实现 #include<stdio.h> int main() { int low,i,j,hi,N; int a[80][80]; printf("Enter N:"); while(scanf("%d",&N)) { if(N==0) break; low=0; hi=N; for(j=1;j<=N*(N+1)/2;low++,hi--) { for(i=low;i<hi-low;i++) a[low][i]=j++; for(i=low+1;i<hi-low;i++) a[i][hi-i-1]=j++; for(i=(hi-low)-2;i>low;i--) a[i][low]=j++; } for(i=0;i<N;i++) { for(j=0;j<N-i;j++) printf("%4d ",a[i][j]); printf("\n"); } printf("Enter N:"); } return 0; }

  • 第14题:

    请编写一个函数long Fibo(int n), 该函数返回n的Fibonacci数。规则如下:n等于1或者2时,Fibonacci数为1,之后每个Fibonacci数均为止前两个数之和, 即:F(n)=F(n-1)+F(n-2)

    注意:清使用递归算法实现该函数。

    部分源程序已存在文件test1_2.cpp中。

    请勿修改主函数main和其他函数中的任何内容,仅在函数Fibo的花括号中填写若干语句。如n=8时,结果是21。

    文件test1_2.cpp清单如下:

    include<iostream.h>

    corlsh int N=8;

    long Fibo(int n);

    void main()

    {

    long f=Fibo(N);

    couk<<f<<endl;

    }

    long Fibo(int n)

    {

    }


    正确答案:long Fibo(int n) { if(n==1)return 1L; else if(n==2) return 1L; else return Fibo(n-1)+Fibo(n-2); }
    long Fibo(int n) { if(n==1)return 1L; else if(n==2) return 1L; else return Fibo(n-1)+Fibo(n-2); } 解析:本题考查的是考生对于递归函数的熟练掌握。递归是指在调用函数的过程中出现调用该函数自身,这里递归的结束条件是n等于1或2,即已知数列前两项为1。其调用过程如下:如果函数的参数为l或者2就把返回值1返回调用函数;否则,就使用递推公式Fibo(n)=Fibo(n-1)+Fibo(n-2),把n-1和n-2作为参数调用原函数,即这是一个递归求值的过程(递推的过程)。

  • 第15题:

    阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。

    [说明]

    下面的流程图实现了正整数序列{K(1),K(2),…,K(n)}的重排,得到的新序列中,比K(1)小的数都在K(1)的左侧,比K(1)大的数都在K(1)的右侧。以n=6为例,序列{12,2,9,13,21,8}的重排过程为:

    {12,2,9,13,21,8}

    →{2,12,9,13,21,8}

    →{9,2,12,13,21,8}

    →{8,9,2,12,13,21}

    [流程图]


    正确答案:(1) K(s)K(t) (2) K(s) (3) i←i-1 (4) t←t+1 (5) s←s+1
    (1) K(s)K(t) (2) K(s) (3) i←i-1 (4) t←t+1 (5) s←s+1 解析:算法中变量K(t)始终代表原始序列中的K(1)值,t则代表它在当前序列中的位置编号,初始值为1; k(s)代表待比较的数。算法首先拿K(t)和其后的数做比较,若K(s)比K(t)小,则K(s)移至序列的最左侧,同时顺次把第i,is位的元素向右移一位。让s自增1,重复这一步骤,直至到达序列末端(即s=n)为止。

  • 第16题:

    补充程序Ccon0310.C,使其实现用递归算法求平方根。求平方根的迭代公式如下:


    /**/doublemysqrt(double,double);/**/
    X1=/**/(x0+a/x0)/2;/**/
    Ymysqrt(/**/a,x1/**/);

  • 第17题:

    以下程序的运行结果为______。main(){ int i,f1,f2; f1=f2=1; for(i=0;i<4;i++) { printf("%d %d",f1,f2); f1+=f2; f2+=f1; }}

    A.1 1 2 3 5 8 13 21

    B.1 1 2 2 5 5 10 10

    C.1 2 5 8 9 8 13 21

    D.0 1 1 2 4 5 15 21


    正确答案:A

  • 第18题:

    有10个连续奇数,第1个数等于第10个数的5/11,求第1个数?

    A、5

    B、11

    C、13

    D、15


    正确答案:D
    选D
    普通解法:设第1个数为x,则第10个数应该是x+18,x=5/11(x+18)。
    特殊解法:第1个数为第10个数的5/11,则第一个数为5的倍数,排除B、C。如果第一个数为5,则第10个数为11,显然不对。

  • 第19题:

    编程计算数列{1,1,2,3,5,8,13,21……}第50位的值。


    答案:
    解析:
    该数列从第三项开始,每一项等于该项的前两项之和,所以可以设置该项的前两项分别为first和second,该项为result,利用for循环,求得第50项的值。

  • 第20题:

    若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用__(1)__算法,因为__(2)__。空白(1)处应选择()

    • A、先递归后递推
    • B、先递推后递归
    • C、递归
    • D、递推

    正确答案:D

  • 第21题:

    在1,1,2,3,5,8,13,21,34……这一斐波那契数列中,第12项是()。

    • A、143.0
    • B、144.0
    • C、145.0
    • D、146.0

    正确答案:B

  • 第22题:

    下面数列体现斐波那契特点的是()

    • A、1、1、2、3、5、8、13、21、……
    • B、2、3、5、8、13、21、……
    • C、2、4、6、8、10、……
    • D、1、1、2、4、6、8、……

    正确答案:A

  • 第23题:

    单选题
    有10个连续奇数,第1个数等于第10个数的5/11,求第1个数?
    A

    5

    B

    11

    C

    13

    D

    15


    正确答案: D
    解析: