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

标签 c recursion

好吧,我正在准备我的 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;

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

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

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

相关文章:

python - Scrapy: 递归爬取生成 DEBUG: Crawled (200) 并且没有项目输出

javascript - JavaScript 是否会在每次递归调用时启动一个新堆栈?

recursion - 不安全的 Rust 中的堆栈引用,但确保不安全不会从堆栈中泄漏?

python - 递归如何跟踪答案?

c - DFS 中的段错误

c - 出现内存分配错误

c - 初始化静态常量数组

java - Java 中的链接错误

c - 自进程开始以来耗时

javascript - 如何计算递归函数的复杂度?