首页 > 代码库 > C语言之函数调用17—递归法之中的一个般函数的调用(2)
C语言之函数调用17—递归法之中的一个般函数的调用(2)
//递归法
/*
==================================================================
题目:求F(60),当中F(n)定义例如以下:
F(0)=0;
F(1)=1;
F(2n)=f(n)+3;
F(2n+1)=F(n)+F(2n-1).
==================================================================
*/
#include<stdio.h>
double F(int n)
{
if(n==0) return 0;
else if(n==1) return 1;
else if(n%2==0)return F(n/2)+3;
else if(n%2!=0)
return F((n-1)/2)+F(n-2);
}
void main()
{
int n;
float p;
printf("n=");
scanf("%d",&n);
p=F(n);
printf("F(%d)=%.2lf\n",n,p);
}
/*
======================================================================
评:
第三等式中。令t=2n,故t%2==0,n=t/2;
第四等式中,令t=2n+1,故t为奇数,则n=(t-1)/2,2n-1=t-2;(程序中n作为t用)
建立递推关系,就非常easy编写了。
========================================================================
*/
/*
==================================================================
题目:求F(60),当中F(n)定义例如以下:
F(0)=0;
F(1)=1;
F(2n)=f(n)+3;
F(2n+1)=F(n)+F(2n-1).
==================================================================
*/
#include<stdio.h>
double F(int n)
{
if(n==0) return 0;
else if(n==1) return 1;
else if(n%2==0)return F(n/2)+3;
else if(n%2!=0)
return F((n-1)/2)+F(n-2);
}
void main()
{
int n;
float p;
printf("n=");
scanf("%d",&n);
p=F(n);
printf("F(%d)=%.2lf\n",n,p);
}
/*
======================================================================
评:
第三等式中。令t=2n,故t%2==0,n=t/2;
第四等式中,令t=2n+1,故t为奇数,则n=(t-1)/2,2n-1=t-2;(程序中n作为t用)
建立递推关系,就非常easy编写了。
========================================================================
*/
C语言之函数调用17—递归法之中的一个般函数的调用(2)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。