[公式]

應該可以簡單地翻譯成 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

遞歸表達式


推薦閱讀:
相关文章