递归函数练习——输出角谷猜想各个步骤

/*=====================================
角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。
如:输入22,
输出 22  11  34  17  52  26  13  40  20  10  5  16  8  4  2  1
     STEP=16

======================================*/
复制代码
 1 #include<stdio.h>
 2 int step = 1;
 3 
 4 void fc(int n)//输出n这个数并按角谷猜想对n做处理以便进入下一步。返回值是总步数。 
 5 {
 6     if(n == 1)
 7     {
 8         printf("%d",n);
 9         return; 
10     }
11     else if(n%2 == 0)
12     {
13         printf("%d\t",n);
14         fc(n/2);
15         step++;
16     }
17     else
18     {
19         printf("%d\t",n);
20         fc(n*3+1);
21         step++;
22     }
23 }
24 
25 int main(int argc, char* argv[])
26 {
27     int n;
28     printf("Please input the num:");
29     scanf("%d",&n);
30     fc(n);
31     printf("\nStep = %d\n",step);
32     return 0;
33 }
View Code
复制代码

 

posted on   华山青竹  阅读(2036)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示