1.函數f(n), n>=0:
f(0)=0
f(1)=1
f(2)=3
f(3)=6
...
可得:
f(0)=0
f(1)=1
f(2)=f(1)+2=3
f(3)=f(2)+3=6
2.費氏函數
F(n)=n, if n<=1;
F(n)=F(n-1)+F(n-2), otherwise
#include
void fn1(void);
void fab(void);
void main(void)
{
fn1();
fab();
return;
}
void fn1(void)
{
int n=0;
printf("please input n: ");
scanf("%d",&n);
printf("for: f(%d)=%d,recursive: f(%d)=%d\n",n,fn1for(n),n,fn1r(n));
return;
}
int fn1r(int n)
{
if(n<=0)
return 0;
else if(n==1)
return 1;
else
return fn1r(n-1)+n;
}
int fn1for(int n)
{
int fn=0;
int i;
for(i=1; i<=n; i++)
{
fn=fn+i;
}
return fn;
}
void fab(void)
{
int n=0;
printf("please input n: ");
scanf("%d",&n);
printf("for: f(%d)=%d,recursive: f(%d)=%d\n",n,fabfor(n),n,fabr(n));
return;
}
int fabr(int n)
{
if(n<=1)
return n;
else
return fabr(n-1)+fabr(n-2);
}
int fabfor(int n)
{
int f1=0,f2=0,fn=0,i;
for(i=0; i<=n; i++)
{
if(i<=1)
fn=i;
else
fn=f1+f2;
f2=f1;
f1=fn;
/*printf("f1=%d,f2=%d,f(%d)=%d\n",f1,f2,i,fn);*/
}
return fn;
}
f(0)=0
f(1)=1
f(2)=3
f(3)=6
...
可得:
f(0)=0
f(1)=1
f(2)=f(1)+2=3
f(3)=f(2)+3=6
2.費氏函數
F(n)=n, if n<=1;
F(n)=F(n-1)+F(n-2), otherwise
#include
void fn1(void);
void fab(void);
void main(void)
{
fn1();
fab();
return;
}
void fn1(void)
{
int n=0;
printf("please input n: ");
scanf("%d",&n);
printf("for: f(%d)=%d,recursive: f(%d)=%d\n",n,fn1for(n),n,fn1r(n));
return;
}
int fn1r(int n)
{
if(n<=0)
return 0;
else if(n==1)
return 1;
else
return fn1r(n-1)+n;
}
int fn1for(int n)
{
int fn=0;
int i;
for(i=1; i<=n; i++)
{
fn=fn+i;
}
return fn;
}
void fab(void)
{
int n=0;
printf("please input n: ");
scanf("%d",&n);
printf("for: f(%d)=%d,recursive: f(%d)=%d\n",n,fabfor(n),n,fabr(n));
return;
}
int fabr(int n)
{
if(n<=1)
return n;
else
return fabr(n-1)+fabr(n-2);
}
int fabfor(int n)
{
int f1=0,f2=0,fn=0,i;
for(i=0; i<=n; i++)
{
if(i<=1)
fn=i;
else
fn=f1+f2;
f2=f1;
f1=fn;
/*printf("f1=%d,f2=%d,f(%d)=%d\n",f1,f2,i,fn);*/
}
return fn;
}
全站熱搜
留言列表