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