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));
}