用C語言怎麼做,救救孩子!?
應該可以簡單地翻譯成 C。
這個用循環就能完成。如果需要源碼請私聊我一下。我給你編一個。
#include &
int func(int A,int B,int n)
#include &
int func(int A,int B,int n){
if(n==1 ||n==2)
return 1;
else
return (A*func(A,B,n-1)+B*func(A,B,n-2))%7;
}
int main()
{
int A,B,n;
scanf("%d %d %d",A,B,n);
printf("%d",func(A,B,n));
}
只是函數的話一行就搞定了
int f(int a, int b, int n){return n &< 3? 1: (a*f(a,b,n-1)+b*f(a,b,n-2))%7;}
不過為了可讀性強,還有方便調試,最好使用下面的代碼
#include &
#include &
int f(int a, int b, int n);
int
main(int argc, char *argv[])
{
int a,b,n;
if (argc != 4)
{
printf("usage: %s [A] [B] [n]
", argv[0]);
return 0;
}
a = atoi(argv[1]);
b = atoi(argv[2]);
n = atoi(argv[3]);
printf("f(%d)=(%d*f(%d-1)+%d*f(%d-2)) mod 7
f(%d)=%d
", n, a, n, b, n, n, f(a,b,n));
return 0;
}
int
f(int a, int b, int n)
{
return n &< 3? 1: (a*f(a,b,n-1)+b*f(a,b,n-2))%7;
}
你C語言不會也就算了,連截圖也不會嗎?
if n等於1 或 n等於2
return n
else
遞歸表達式
推薦閱讀: