C语言面试大全系列带面试题答案(30)

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 110 收藏 0 点赞 0 评论 0

14    用递归方法,求:

                         0,                  n=0

fib(n)=         1,                                  n=1

                  fib(n-2)+fib(n-1),  n>1

 

解:   #include <stdio.h>

long  fib(int n)

   if(n= =0)

      return(0);

    else if(n= =1)

      return(1);

     else

       return(fib(n-2)+fib(n-1));

     }

main()

{

   printf(“%ldn”,fib(6));

}

15    编一函数,计算并输出K以内最大的10 个能被13或17整除的自然数之和。其中,K 的值由主函数传入。

解:   #include <conio.h>

#include <stdio.h>

int fun(int k)

{ int m=0,mc=0,j,n;

   while((k>=2)&&(mc<10))

    {

       if((k%13= =0)||(k%17)=0))

         {m=m+k;mc++;}

      k- -;

   }

return m;

}

main()

{  int d;

  scanf(“%d”,&d);

  clrscr();

  printf(“%dn”,fun(d));

}

19  编一函数,求P的值。其中:p=m!/n!(m-n)!

解:  #include <stdio.h>

long jc(int m)

  long s=1;

  int i;

  for(i=1;i<=m;i++)

    s=s*i;

return s;

}

float fun(int m, int n)

{

   float p;

   p=1.0*jc(m)/jc(n)/jc(m-n);

   return p;

}

main()

   int i,j;

   scanf(“%d%d”,&i,&j);

   printf(“p=%fn”,fun(i,j));

}

评论列表
文章目录