1293. 3n+1数链问题
来源:互联网 发布:数据新闻栏目 编辑:程序博客网 时间:2024/05/29 04:48
1293. 3n+1数链问题
Constraints
Time Limit: 1 secs, Memory Limit: 32 MB
Description
在计算机科学上,有很多类问题是无法解决的,我们称之为不可解决问题。然而,在很多情况我们并不知道哪一类问题可以解决,那一类问题不可解决。现在我们就有这样一个问题,问题如下:
1. 输入一个正整数n;
2. 把n显示出来;
3. 如果n=1则结束;
4. 如果n是奇数则n变为3n+1 ,否则n变为n/2;
5. 转入第2步。
例如对于输入的正整数22,应该有如下数列被显示出来:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
我们推测:对于任意一个正整数,经过以上算法最终会推到1。尽管这个算法很简单,但我们仍然无法确定我们的推断是否正确。不过好在我们有计算机,我们验证了对于小于1,000,000的正整数都满足以上推断。
对于给定的正整数n,我们把显示出来的数的个数定义为n的链长,例如22的链长为16。
你的任务是编写一个程序,对于任意一对正整数i和j,给出i、j之间的最长链长,当然这个最长链长是由i、j之间的其中一个正整数产生的。我们这里的i、j之间即包括i也包括j。
Input
输入文件只有一行,即为正整数i和j,i和j之间以一个空格隔开。0 < i ≤ j < 10,000。
Output
文件只能有一行,即为i、j之间的最长链长。
Sample Input
1 10
Sample Output
20
Problem Source
ZSUACM Team Member
题目并不难,理解数链的变换规律即可,用数组存储每个数链的长度,最后输出最大的即可。
// Problem#: 1293
// Submission#: 1854228
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include<stdio.h>
int main(){
int i,j;
while(scanf("%d %d",&i,&j)!=EOF){
int length=j-i+1;
int a[length];
int counter;
int countert;
int temp=0;
for(counter=i;counter<=j;counter++){
temp=1;
countert=counter;
while(countert!=1){
if((countert%2)!=0){
countert=countert*3+1;
}
else{
countert/=2;
}
temp++;
}
a[counter-i]=temp;
}
for(i=0;i<length-1;i++){
if(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
printf("%d\n",a[length-1]);
}
return 0;
}
- 1293. 3n+1数链问题
- 1293. 3n+1数链问题
- 1293. 3n+1数链问题
- 1293. 3n+1数链问题
- 3n+1 数链问题
- 3n+1数链问题
- 1293[3n+1数链问题]
- 3n+1 数链问题(数论)
- 3n+1数链问题--递归
- 3n+1数链问题
- 3n+1数链问题
- 3n+1数链问题
- WOJ1314-3n+1数链问题
- [sicily]1293. 3n+1数链问题
- 3N数链问题
- [数论][题目]3n+1数链问题
- sicily 1000. 3n+1数链问题
- POJ 1207(3n+1数链问题)
- 亚里士多德名言
- SQL从入门到精通
- 在U盘上运行Win8!使用 Windows To Go 制作便携的 Win8 U盘/移动硬盘教程 (视频) - 好软之家
- socket常见问题----《四》
- c与c++ static函数的区别
- 1293. 3n+1数链问题
- linux popen用法详解
- 解决开机时svchost.exe的CPU占用率过高导致系统异常缓慢 - 好软之家
- [算法]1~4 组成无重复数字的三位数
- 三星GT-i9001详细刷机教程
- 深入了解Oracle ASM(一):基础概念
- Windows上64位编程
- linux下用gdb调试c程序
- JS 分页