C语言中,自定义函数的初值怎么设定。。。(在线等)
比如说,我现在自定义了一个函数:f(n)=f(n-1)+f(n-2),而且我已知f(1)=1且f(2)=2,现在循环调用放f(n)这个函数,怎样在函数中说明f(1)和f(...
比如说,我现在自定义了一个函数:f(n)=f(n-1)+f(n-2),而且我已知f(1)=1且f(2)=2,现在循环调用放f(n)这个函数,怎样在函数中说明f(1)和f(2)的值
展开
4个回答
展开全部
int count(int n)
{
int N=0;
if(n==1)
{
N=1;
}
else if(n==2)
{
N=2;
}
else if(n==3)
{
N=4;
}
else if(n>3)
{
N=count(n-1)+count(n-2)+count(n-3);
}
return N;
}
刚看到你的要求 给你写了一下
追问
好吧,是我描述的有问题。。。
我是想求:f(n-1)+f(n-2)+f(3)的值,现在一直放f(1)=1,f(2)=2,f(3)=4
求f(6)=f(3)+f(4)+f(5)=4 +f(1)+f(2)+f(3)+ f(2)+f(3)+f(4)=4+1+2+4+2+4+ f(1)+f(2)+f(3)=17+1+2+4=24
追答
看懂你的意思了
你的意思是如果n是6或者比6大的数
f(n)=f(n-1)+f(n-2)+f(3)
int count(int n)
{
int N=0;
if(n==1)
{
N=1;
}
else if(n==2)
{
N=2;
}
else if(n==3)
{
N=4;
}
else if(n==4||n==5)
{
N=count(n-1)+count(n-2);
}
else if(n>5)
{
N=count(n-1)+count(n-2)+count(3);
}
return N;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int f(int n){
int r,s;
if (n==1) return 1;
if (n==2) return 2;
r=f(n-1); // 递归调用
s=f(n-2); // 递归调用
return r+s;
}
main(){
int n=4;
printf("input n [n >= 1]\n");
scanf("%d",&n);
printf("n=%d f=%d\n",n,f(n));
}
int f(int n){
int r,s;
if (n==1) return 1;
if (n==2) return 2;
r=f(n-1); // 递归调用
s=f(n-2); // 递归调用
return r+s;
}
main(){
int n=4;
printf("input n [n >= 1]\n");
scanf("%d",&n);
printf("n=%d f=%d\n",n,f(n));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |