(Problem 14)Longest Collatz sequence
The following iterative sequence is defined for the set of positive integers:
n
n/2 (n is even) n
3n + 1 (n is odd)
Using the rule above and starting with 13, we generate the following sequence:
40
20
10
5
16
8
4
2
1It can be seen that this sequence (starting at 13 and finishing at 1) contains 10 terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at 1.
Which starting number, under one million, produces the longest chain?
NOTE: Once the chain starts the terms are allowed to go above one million.
题目大意:
以下迭代序列定义在整数集合上:
n
n/2 (当n是偶数时) n
3n + 1 (当n是奇数时)
应用以上规则,并且以数字13开始,我们得到以下序列:
40
20
10
5
16
8
4
2
1可以看出这个以13开始以1结束的序列包含10个项。虽然还没有被证明(Collatz问题),但是人们认为在这个规则下,以任何数字开始都会以1结束。
以哪个不超过100万的数字开始,能给得到最长的序列? 注意: 一旦序列开始之后,也就是从第二项开始,项是可以超过100万的。
方法1:
#include<stdio.h>
#include<math.h>
#include<stdbool.h> int powcount(long long n) //计算2的幂数
{
int count=;
while(n>>=) count++;
return count;
} bool ispower(long long v) //判断n是否为2的幂
{
if(((v & (v - )) == )) return true;
else return false;
} int length(long long n)
{
int sum=;
while()
{
if(n==) break;
if((n & )==)
{
if(ispower(n)) return sum+powcount(n);
else n=n/;
}
else n=*n+;
sum++;
}
return sum;
} int main()
{
int i,t,k,max=;
for(i=; i<; i++)
{
t=length(i);
if(t>max)
{
max=t;
k=i;
}
}
printf("%lld\n",k);
return ;
}
方法2:
#include<stdio.h>
#include<math.h>
#include<stdbool.h> int a[]; void find()
{
long long i,j,k,f,sum,max=;
a[]=,a[]=;
for(j=; j<; j++)
{
sum=,k=i=j;
while()
{
if((i & )==)
{
i=i/;
if(i<k)
{
a[k]=sum+a[i];
break;
}
}
else
{
i=*i+;
}
sum++;
}
if(a[k]>max)
{
max=a[k];
f=k;
}
}
printf("%d\n",f);
} int main()
{
find();
return ;
}
|
Answer:
|
837799 |
(Problem 14)Longest Collatz sequence的更多相关文章
- (CodeForces - 5C)Longest Regular Bracket Sequence(dp+栈)(最长连续括号模板)
(CodeForces - 5C)Longest Regular Bracket Sequence time limit per test:2 seconds memory limit per tes ...
- (Problem 42)Coded triangle numbers
The nth term of the sequence of triangle numbers is given by, tn = ½n(n+1); so the first ten triangl ...
- (Problem 74)Digit factorial chains
The number 145 is well known for the property that the sum of the factorial of its digits is equal t ...
- (Problem 72)Counting fractions
Consider the fraction, n/d, where n and d are positive integers. If nd and HCF(n,d)=1, it is called ...
- (Problem 53)Combinatoric selections
There are exactly ten ways of selecting three from five, 12345: 123, 124, 125, 134, 135, 145, 234, 2 ...
- (Problem 49)Prime permutations
The arithmetic sequence, 1487, 4817, 8147, in which each of the terms increases by 3330, is unusual ...
- (Problem 47)Distinct primes factors
The first two consecutive numbers to have two distinct prime factors are: 14 = 2 7 15 = 3 5 The fi ...
- (Problem 29)Distinct powers
Consider all integer combinations ofabfor 2a5 and 2b5: 22=4, 23=8, 24=16, 25=32 32=9, 33=27, 34=81, ...
- (Problem 28)Number spiral diagonals
Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is forme ...
随机推荐
- 【算法】求多个数组中的交集(Java语言实现)
简介: 最近在工作中遇到一个问题,需要离线比较两张Mongodb表的差异:大小差异,相同的个数. 所以,我将导出的bson文件转成了json文件(2G以上),一条记录正好是一行. 问题: 因此我将以上 ...
- Linux 系统之Systemd
子贡问为仁.子曰:“工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者.”——孔子(春秋)<论语·卫灵公> [工欲善其事,必先利其器] 掌握一门技术,知道其发展历程是非常重要的 ...
- 10-C语言函数
目录: 一.函数 二.return与exit关键字 三.递归与递推 回到顶部 一.函数 1 函数由函数名.返回值.形参.函数体组成. 函数的使用分三个步骤:声明.定义.调用 2 语法格式: 返回值类型 ...
- HeapAnalyzer
https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=4544baf ...
- Spring Boot普通类调用bean
1 在Spring Boot可以扫描的包下 假设我们编写的工具类为SpringUtil. 如果我们编写的SpringUtil在Spring Boot可以扫描的包下或者使用@ComponentScan引 ...
- ddraw 视频下画图 不闪烁的方法
我们如果是在在RGB视频上画图(直线,矩形等),一般采用双缓冲区继续,使用内存MemoryDC,来实现画的图形在视频上显示不闪烁的功能,但是我们知道用RGB显示视频都是使用GDI进行渲染,这样很耗CP ...
- Modular Inverse(模逆元,扩展欧几里德)
Modular Inverse Time Limit: 2 Seconds Memory Limit: 65536 KB The modular modular multiplicative ...
- jdbc操作步骤和preparedStatment相比Statment的好处
java操纵数据库封装了一组API,通过这组API可以透明的操作各种数据库,一般来讲,操纵数据库的步骤是: 一. try{ 1.加载数据库驱动 Class.forName("数据库驱动类&q ...
- poj2492 A Bug's Life【基础种类并查集】
转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4298148.html ---by 墨染之樱花 题目链接:http://poj.org/pr ...
- 【SqlServer数据类型、C#数据类型、SqlDbType】对应关系及转换
// sql server数据类型(如:varchar)// 转换为SqlDbType类型public static SqlDbType SqlTypeString2SqlType(string sq ...