ACM--数学--湘大OJ 1142--Collatz Conjecture
2016-05-07 19:07
274 查看
湘大OJ地址:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1142
考拉兹猜想,又称为3n+1猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。
如n = 6,根据上述数式,得出 6→3→10→5→16→8→4→2→1 。步骤中最高的数是16,共有8个步骤。现在给定任意整数a和b,问对所有a
≤ n ≤ b,一共经过多少步后才能都得到1,其中最高的数是多少。
有多组测试数据。每组测试数据占一行,包含两个正整数1 ≤ a ≤ 1000000和a ≤ b ≤ a + 10。输入以EOF结束。
对每组测试数据,输出步数和最高数,用空格隔开。
================================天生骄傲的分割线==========================
才开始看这个题目很简单,但是实际上这个题目很变态,可以使用 long long 和 __int64 ,但是输出一定要是 %I64d 才行!
参考博客:/article/1524229.html
Collatz Conjecture
Time Limit:8000 MS
Memory Limit : 1048536KB
考拉兹猜想,又称为3n+1猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。如n = 6,根据上述数式,得出 6→3→10→5→16→8→4→2→1 。步骤中最高的数是16,共有8个步骤。现在给定任意整数a和b,问对所有a
≤ n ≤ b,一共经过多少步后才能都得到1,其中最高的数是多少。
Input
有多组测试数据。每组测试数据占一行,包含两个正整数1 ≤ a ≤ 1000000和a ≤ b ≤ a + 10。输入以EOF结束。
Output
对每组测试数据,输出步数和最高数,用空格隔开。
Sample Input
6 6
11 12
23 33
Sample Output
8 16
23 52
360 9232
================================天生骄傲的分割线==========================
才开始看这个题目很简单,但是实际上这个题目很变态,可以使用 long long 和 __int64 ,但是输出一定要是 %I64d 才行!
#include <stdio.h> int main() { int a,b,i; __int64 count,max,t; while (scanf("%d%d",&a,&b)!=EOF) { count=0;max=a; for (i=a;i<=b;i++) { t=i; while (t!=1) { if (t%2) { t=t*3+1; } else { t=t/2; } if(t>max) max=t; count++; } } printf("%I64d %I64d\n",count,max); } return 0; }
参考博客:/article/1524229.html
相关文章推荐
- 传统硬盘与固态硬盘的比较
- html5中的创建热点区域
- 解决了在Android原生TextView中,当text长度小于hint时,TextView右方会占据多余的位置
- C#二十六 使用Ado.Net调用存储过程
- C#二十六 使用Ado.Net调用存储过程
- 最长上升子序列LIS(Longest Increasing Subsequence)
- C#二十六 使用Ado.Net调用存储过程
- Java中Map的用法详解
- Beego 1.6+ 错误页面(404,500)自定义重定向
- Android中 int,float,Double,String 互相转换
- 常用dos命令大全
- JS中数组对象去重
- HDU 1400 Mondriaan's Dream
- 选择J2EE的SSH框架的理由
- 安卓反编译工具的应用
- jquery获取checkbox选中值为undefined
- 虚拟机+CentOS内核hack7、8、9、17失败记
- 【工具】持续集成工具——Jenkins
- linux设备驱动编程环境的搭建小结(结合LDD3使用)
- 转载 - LINUX下查看CPU使用率的命令