F(n) C语言
ints=0;intf1(intn){returnn;}intf2(intn){inti;i=n;while(i>6)s=s+f2(i-1)+f2(i-3);while(...
int s=0;
int f1(int n)
{ return n;
}
int f2(int n)
{
int i;
i=n;
while(i>6)
s=s+f2(i-1)+f2(i-3);
while(4<=i<=6)
s=s+f2(i-1)+f1(i-3);
while(i<=3)
s=s+f1(i);
return s;
}
main()
{
int a,r;
scanf("%d",&a);
if (a<=3)
r=f1(a);
else r=f2(a);
printf("%d",r);
}这个是计算f(n)=f(n-1)+f(n-3) n>3
f(n)=n n<=3
的代码
哪里出错了啊 我输入3 输出3 输入5,6,9什么的都没有反应了。 展开
int f1(int n)
{ return n;
}
int f2(int n)
{
int i;
i=n;
while(i>6)
s=s+f2(i-1)+f2(i-3);
while(4<=i<=6)
s=s+f2(i-1)+f1(i-3);
while(i<=3)
s=s+f1(i);
return s;
}
main()
{
int a,r;
scanf("%d",&a);
if (a<=3)
r=f1(a);
else r=f2(a);
printf("%d",r);
}这个是计算f(n)=f(n-1)+f(n-3) n>3
f(n)=n n<=3
的代码
哪里出错了啊 我输入3 输出3 输入5,6,9什么的都没有反应了。 展开
2013-11-02
展开全部
你原来的程序里逻辑上是有问题的,这个题用一个递归函数就解决了#include<stdio.h>
int f(int n)
{
if (n<=3) return n;
else return f(n-1)+f(n-3);}
main()
{
int a,r;
scanf("%d",&a);
r=f(a);
printf("%d\n",r);
}
int f(int n)
{
if (n<=3) return n;
else return f(n-1)+f(n-3);}
main()
{
int a,r;
scanf("%d",&a);
r=f(a);
printf("%d\n",r);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询