gpt4 book ai didi

c - 当我们找到答案时退出先前的递归

转载 作者:行者123 更新时间:2023-11-30 19:32:21 25 4
gpt4 key购买 nike

我有一个关于c编程的问题(也可能有其他语言的问题)考虑这个程序:

(我想写出最后一个可被 3 整除的输入数字,而不使用数组......仅使用递归)

int func( int n )
{

int a;
if (n==0)
return 0;
scanf("%d",&a);
function(n-1);
if(a%3==0)
{
printf("%d\n",a);
return 1;
}
}

但不幸的是,它以相反的顺序打印可被 3 整除的数字(我只想要最后一个可被 3 整除的数字)

最佳答案

如果该值有效且之前没有返回过其他有效值(例如,使用 -1 作为无效标记),则必须返回要打印的值

int func (int n) {
int a;

if (n == 0)
return -1;
scanf("%d", &a);
int ret = func(n-1);
if ((ret == -1) && (a%3 == 0))
ret = a;
return ret;
}

现在您可以打印 func() 的返回值。

printf("%d\n", func(100)); // For 100 values

关于c - 当我们找到答案时退出先前的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47202926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com