作者bil193 (丁丁)
看板C_and_CPP
标题[ACM ] 100 3n+1 problem 如何再改善?
时间Fri Mar 20 01:28:02 2009
小弟练了一年
终於把ACM 最简单的3n+1 problem写出来
显示AC了
不过爬了一下文
这题好像有好多种解
想请问我这样写 有没有什麽不妥的地方呢?
而且花了1.26秒....好久@@
=======================================================
#include<stdio.h>
#include<stdlib.h>
int length(int n);
int main()
{
int a=0,b=0,temp=0,max,i,index;
while( (scanf("%d %d",&a,&b))!=EOF )
{
printf("%d %d ",a,b);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
max=length(a);
for(i=a;i<=b;i++)
{
if(length(i)>max)
{
max=length(i);
index=i;
}
} //for
printf("%d\n",max);
} //while
system("pause");
return 0;
}
int length(int n) //传回整数n的cycle-length值
{
int count=1;
while(1)
{
if(n==1)
{
return count;
}
else if(n%2==1)
{
count++;
n=3*n+1;
continue;
}
else
{
count++;
n=n/2;
continue;
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.91.19
1F:推 LawlietDo:把算过的答案记起来 03/20 01:34
2F:→ bil193:请问是什麽意思呢? 每个cycle-length都会算到啊 03/20 01:39
3F:推 snowlike:keyword: 建表 03/20 02:17
4F:→ bleed1979:请参考我的网站解法 World of bleed1979 03/20 06:26