鱼C论坛

 找回密码
 立即注册
查看: 2255|回复: 2

[已解决]角谷定理

[复制链接]
发表于 2018-10-22 21:55:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过有限次后,总会得到自然数1。给定任意自然数,输出这一过程。如对于5,该过程为16 8 4 2 1,需要递归来实现。

疑惑:已经设置过断点调试,不知为什么会打印图中的结果

代码:
#include<iostream>

int th(int num)
{
        if (num == 1)
        {
                printf("1");
        }
        else if (num % 2 == 0)
        {
                num = num / 2;
                printf("%d", num);
                return th(num);
        }
        else
        {
                num = num * 3 + 1;
                printf("%d", num);
                return th(num);
        }
}

int main()
{
        int n;
        printf("请输入一个数字:");
        scanf_s("%d", &n);
        th(n);
        system("pause");
        return 0;
}
最佳答案
2018-10-22 21:59:00
你也没换行就是这样啊,5*3+1打印16
16/2打印8,8/2打印4,4/2打印2,2/2打印1
1在你函数里还要打印1
7H5S_VT1P5H5CX{~_YI1T6Q.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-10-22 21:59:00 | 显示全部楼层    本楼为最佳答案   
你也没换行就是这样啊,5*3+1打印16
16/2打印8,8/2打印4,4/2打印2,2/2打印1
1在你函数里还要打印1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-22 22:22:23 | 显示全部楼层
  1. #include<iostream>

  2. void th(int num)    //void
  3. {
  4.     if (num == 1)
  5.     {
  6.             return;          // return
  7.     }
  8.     else if (num % 2 == 0)
  9.     {
  10.         num = num / 2;
  11.         printf("%d\n", num);    // \n
  12.         return th(num);
  13.     }
  14.     else
  15.     {
  16.         num = num * 3 + 1;
  17.         printf("%d\n", num);   // \n
  18.         return th(num);
  19.     }
  20. }

  21. int main()
  22. {
  23.     int n;
  24.     printf("请输入一个数字:");
  25.     scanf_s("%d", &n);
  26.     th(n);
  27.     system("pause");
  28.     return 0;
  29. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-10 14:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表