gpt4 book ai didi

c - 如何使用递归找到数字中的最小元素 [C]

转载 作者:行者123 更新时间:2023-12-01 13:39:28 25 4
gpt4 key购买 nike

好的,所以我正在准备我的 C 考试,但在递归方面我有点卡住了我需要找到最小的元素,例如:52873 是 2,程序需要打印 2。

#include <stdio.h>

int min (int number, int element){
if (number==0)
return element;
if (element>number%10)
element=number%10;

min(number/10,element);
}

int main (){
int number;
while (scanf("%d",&number)){
printf("%d\n",min(number,9));

}
}

这是练习答案的代码,但我不明白,我很想了解为什么它会这样解决,因为我不太了解它以及解决它的不同方法,非常感谢进步。

最佳答案

该程序的想法如下:

当您将数字减 10 时,您会得到最后一位数字,例如:

16%10 = 6;
6%10 = 6;
536%10 = 6;

当你/一个数字减 10 时,你取出数字的最后一位,例如:
16/10 = 1;
6/10 = 0; (6 = 06)
536/10 = 53;

因此,您的递归答案的想法是将最小的数字保存在“元素”中,并通过将数字除以 10 (/) 并执行模块 (%) 来递归地分析每个数字。

但是,我认为你的解决方案有问题,如果我的号码是 0,你会返回 9 作为答案。

关于c - 如何使用递归找到数字中的最小元素 [C],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41486547/

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