题意:
1、对于整数n,如果n是偶数,则除以2。如果n是奇数,乘以3加1,当n=1时终止。
2、输入:整数i和j
3、循环长度是指在1之前(包括1)生成的数。
3、输出:输出i和j的顺序与i和j之间的整数的最大循环长度,三个数字用一个空格分
4、有多组输入输出
5、All integers will be less than 1,000,000 and greater than 0.
具体代码:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i, j, t;
  5. while (scanf("%d %d", &i, &j) != EOF)
  6. {
  7. printf("%d %d ", i, j);//输完直接打印如果后面不再要求输入
  8. if (i > j)
  9. {
  10. t = i;
  11. i = j;
  12. j = t;
  13. }
  14. int c = 1;//开始值为一,注意可以自己带几个值进去看看
  15. int max = 0;//
  16. for (int p = i; p <= j; p++)
  17. {
  18. int c = 1;
  19. long long temp = p;//这里要定义一个临时变量,防止把p的值搞乱掉
  20. while (temp != 1)
  21. {
  22. if (temp % 2 == 0)
  23. temp /= 2;
  24. else
  25. temp = temp * 3 + 1;//temp的值可能越界定义longlong型
  26. c++;//
  27. }
  28. if (max < c)//选出一系列数中的最大值,不用把每个数都存起来,然后从大到小排序
  29. max = c;//直接定义一个最大值,然后依次比较,遇到大的覆盖即可
  30. c=1;//c重新赋值或者把int c=1;写到循环体里面
  31. }
  32. printf("%d\n", max);
  33. }
  34. return 0;
  35. }
点赞(0)
 

6 分

2 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论