#include<stdio.h>
void fact(int n,int a,int b)
{
if(n==1)
fact(n,a,b)=1;
else if(n==2)
fact(n,a,b)=1;
else
fact(n,a,b)=(a*fact(n-1,a,b)+b*fact(n-2,a,b))%7;
printf("%d",fact(n,a,b));
}
int main()
{
int a,b,n;
scanf("%d%d%d",&a,&b,&n);
fact(n,a,b);
}
if(n==1)
return 1;
else if(n==2)
return 1;
直接返回 1.
fact(n,a,b) 是一个函数, 不能用在赋值语句 = 的左边。
参考一下这个博客: c++实现斐波那契数列代码_yangchuang93的博客-CSDN博客_斐波那契数列c++代码
对函数赋值没有用,更何况fact函数是void函数。要想给它赋值的话就用返回值叭~
#include<stdio.h>
int fact(int n,int a,int b)
{
if(n==1)
return 1;
else if(n==2)
return 1;
else
return (a*fact(n-1,a,b)+b*fact(n-2,a,b))%7;
}
int main()
{
int a,b,n;
scanf("%d%d%d",&a,&b,&n);
printf("%d", fact(n,a,b));
}