Zeng-fh 2022-02-04 13:33 采纳率: 89.8%
浏览 24
已结题

这段代码怎么分析呀,看答案解析说是辗转相除法求一个十进制数的二进制数,怎么理解呀


#include <stdio.h>
void fun(int n)
{
    if(n/2) 
    fun(n/2);
    printf("%d",n%2);
}
main()
{
    fun(10);
    printf("\n");
}
  • 写回答

2条回答 默认 最新

  • 慕雪华年 C/C++领域新星创作者 2022-02-04 13:37
    关注

    这算是一个递归,我之前回答过这类问题,你可以参考一下

    https://ask.csdn.net/questions/7636620?answer=53676550

    解析看注释~

    #include <stdio.h>
    void fun(int n)
    {
        if (n / 2)
            fun(n / 2);
        printf("%d", n % 2);
    }
    //先传入10,10/2=5为真
    //执行下一次fun函数,传入10/2
    //传入5,5/2=2为真
    //执行下一个fun,传入2
    //传入2,2/2=1为真
    //执行下一步,fun传入1
    //(1/2)不为真,停止递归
    //开始执行printf(注意,是从后往前执行的)
    //n 1  1%2 1
    //  2  2%2 0
    //  5  5%2 1
    // 10 10%2 0
    int main()
    {
        fun(10);
        printf("\n");
    }
    

    如果对你有帮助,还请点个采纳,万分感谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月12日
  • 已采纳回答 2月4日
  • 创建了问题 2月4日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么