int main() {
int num;
printf("Enter a number\n");
scanf(" %d", &num);
num = prime(num);
if (num == 0)
printf("This is not a prime number");
if (num == 1)
printf("This is a prime number");
}
prime(int num) {
static i = 2;
if (num % i == 0)
return 0;
prime(i + 1);
return 1;
}
請注意,它在某些編譯器中不起作用。這個遞歸的例子是否正確?
我想知道我們是否可以稱之爲遞歸或不。
具體而言,如果調用像prime(i + 1)
這樣的主函數屬於遞歸或不屬於我,我感到困惑。
當然是,爲什麼不是呢??? –
是的。當一個函數直接或間接地調用它自己時,它是按照定義遞歸的。這就是說,正如@UnholySheep所指出的,這個功能是無意義的。它仍然是遞歸的。 –
爲什麼你不指定'prime'的返回類型?你爲什麼不在你的「遞歸」調用中使用返回值? – UnholySheep