The 3n+1 Problem(求各位高手修改)
2011-11-15 22:43
351 查看
Consider the following algorithm to generate a sequence of numbers.Start with an integer n. If n is even, divide by 2. If n is odd,multiply by 3 and add 1. Repeat this process with the new value ofn, terminating when n = 1. For example, the following sequence
ofnumbers will be generated for n = 22:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
It is conjectured (but not yet proven) that this algorithm willterminate at n = 1 for every integer n. Still, the conjecture holdsfor all integers up to at least 1, 000, 000.
For an input n, the cycle-length of n is the number of numbersgenerated up to and including the 1. In the example above, thecycle length of 22 is 16. Given any two numbers i and j, you are todetermine the maximum cycle length over all numbers between i andj,
including both endpoints.
Input
The input will consist of a series of pairs of integers i and j,one pair of integers per line. All integers will be less than1,000,000 and greater than 0.
Output
For each pair of input integers i and j, output i, j in the sameorder in which they appeared in the input and then the maximumcycle length for integers between and including i and j. Thesethree numbers should be separated by one space, with all threenumbers
on one line and with one line of output for each line ofinput.
Sample Input
1 10
100 200
201 210
900 1000
Sample Output
1 10 20
100 200 125
201 210 89
900 1000 174
#include<stdio.h>
int func(int n)
{
intcount=1;
while(n!=1)
{
if(n%2==0)
n=n/2;
else
n=n*3+1;
count++;
}
returncount;
}
int main()
{
inti,j,max,t;
scanf("%d%d",&i,&j);
max=func(i);
for(t=i+1;t<=j;t++)
{
if(max<func(t))
max=func(t);
}
printf("%d%d %d\n",i,j,max);
}
ofnumbers will be generated for n = 22:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
It is conjectured (but not yet proven) that this algorithm willterminate at n = 1 for every integer n. Still, the conjecture holdsfor all integers up to at least 1, 000, 000.
For an input n, the cycle-length of n is the number of numbersgenerated up to and including the 1. In the example above, thecycle length of 22 is 16. Given any two numbers i and j, you are todetermine the maximum cycle length over all numbers between i andj,
including both endpoints.
Input
The input will consist of a series of pairs of integers i and j,one pair of integers per line. All integers will be less than1,000,000 and greater than 0.
Output
For each pair of input integers i and j, output i, j in the sameorder in which they appeared in the input and then the maximumcycle length for integers between and including i and j. Thesethree numbers should be separated by one space, with all threenumbers
on one line and with one line of output for each line ofinput.
Sample Input
1 10
100 200
201 210
900 1000
Sample Output
1 10 20
100 200 125
201 210 89
900 1000 174
#include<stdio.h>
int func(int n)
{
intcount=1;
while(n!=1)
{
if(n%2==0)
n=n/2;
else
n=n*3+1;
count++;
}
returncount;
}
int main()
{
inti,j,max,t;
scanf("%d%d",&i,&j);
max=func(i);
for(t=i+1;t<=j;t++)
{
if(max<func(t))
max=func(t);
}
printf("%d%d %d\n",i,j,max);
}
相关文章推荐
- UVa Problem 100 The 3n+1 problem (3n+1 问题)
- 【转】UVa Problem 100 The 3n+1 problem (3n+1 问题)——(离线计算)
- POJ 1207,UVA 100 The 3n+1 problem
- the 3n+1 problem
- Uva 100 The 3n+1 problem
- The 3n+1 problem
- HDOJ, 杭电1032, The 3n+1 problem. POJ, 北大OJ,1207....数学题。。又一发
- POJ 1027 The 3n+1 problem
- UVa 100 Problem: The 3n+1 problem (PC 110101)
- HDU 1032 The 3n+1 Problem
- The 3n+1 problem
- hdu 1032 The 3n+1 problem
- hdu 1032 The 3n+1 problem
- poj-1207 THE 3n+1 problem
- UVA_100_The_3n+1_Problem
- UVa Problem Solution: 100 - The 3n+1 problem
- PC110101:The 3n+1 problem
- A1031 The 3n+1 problem (3n+1 问题)
- The 3n+1 Problem 题解
- HDU-1032 The 3n+1 problem 模拟问题(水题)