你好每天都會在C語言中變得更好,這是我的課本中出現的一個例子,它產生斐波那契數字並顯示遞歸函數。該程序的作品,但我只是不明白如何...具體在部分(looper % 5)
,整個功能fib
和printf(", %8ld", fib(looper));
正在做什麼。它是否像說fib()做x次。如果這個問題不容易解釋,那麼有人可以讓我更容易理解遞歸函數如何在「河內塔」的例子中工作。謝謝。 注意:程序意圖處理多達30個數字,其他人明智地看起來很醜。C關於遞歸函數的說明
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
long fib (long num);
int main(void)
{
int seriesSize;
printf("This program will print out a Fibonacci series.\n");
printf("How many many numers do you wnat? ");
scanf_s("%d", &seriesSize);
printf("First %d Fib numbers: \n", seriesSize);
for (int looper = 0; looper < seriesSize; looper++)
{
if (looper % 5)
{
printf(", %8ld", fib(looper));
}
else
{
printf("\n%8ld", fib(looper));
}
}
printf("\n");
return 0;
}
long fib(long num)
{
if (num == 0 || num == 1)
{
return num;
}
return (fib(num - 1) + fib(num - 2));
}
'if(looper%5)'只是幫助格式化輸出,使用'「,」'或'「\ n」'分隔值。 –
哦回顧我現在看到的程序,它只是在四條線上添加「,」。即1..4%5 =「,」和5%5 = 10。 %有時會令人困惑.... 謝謝。 –