1. 程式人生 > 實用技巧 >【C語言】程式閱讀題——求fun(5)*w的輸出結果

【C語言】程式閱讀題——求fun(5)*w的輸出結果

這道題目是求輸出結果

題目如下:

 1 #include<stdio.h>
 2 int w=3;
 3 int fun(int k)
 4 {
 5     if(k==0)return w;
 6     return (fun(k-1)*k);
 7 }
 8 int main()
 9 {
10     int w=10;
11     printf("%d\n",fun(5)*w);
12     return 0;
13 }

解題過程如下:

第一步:

首先我們知道求的值是fun(5)*10,因為這裡的w是10,新定義的intw=10頂替了舊定義的intw=3;

第二步:

將fun(5)代入到上面的公式中,求得fun(5)的結果為fun(4)*5

第三步:

重複上面的步驟:

得出:

fun(5)的結果為fun(4)*5

fun(4)的結果為fun(3)*4

fun(3)的結果為fun(2)*3

fun(2)的結果為fun(1)*2

fun(1)的結果為fun(0)*1

第四步:

fun(0)代入到上面的公式中,求得fun(0)的結果為3。

之所以這裡為3是因為這裡用的是第一個定義的int w=3;

第五步:

將fun(0)=3代入

fun(1)=fun(0)*1=3;

fun(2)=fun(1)*2=6;

fun(3)=fun(2)*3=18;

fun(4)=fun(3)*4=72;

fun(5)=fun(4)*5=360;

第六步:

第一步中說了最終結果是fun(5)*10;

即最終結果為3600


答案:3600