大家帮帮忙啊!怎么老是通不过啊? 原题地址:http://poj.org/problem?id=1207
#include<stdio.h>intmain(){inta,b,max=1;while(~scanf("%d%d",&a,&b)){for(inti=a;i<=b;i...
#include<stdio.h>
int main()
{
int a,b,max=1;
while(~scanf("%d%d",&a,&b))
{
for(int i=a;i<=b;i++)
{
int temp=i,k=1;
while(temp!=1)
{
if(temp%2==0) temp=temp/2;
else temp=3*temp+1;
++k;
}
max=max>k?max:k;
}
printf("%d %d %d\n",a,b,max);
}
} 展开
int main()
{
int a,b,max=1;
while(~scanf("%d%d",&a,&b))
{
for(int i=a;i<=b;i++)
{
int temp=i,k=1;
while(temp!=1)
{
if(temp%2==0) temp=temp/2;
else temp=3*temp+1;
++k;
}
max=max>k?max:k;
}
printf("%d %d %d\n",a,b,max);
}
} 展开
4个回答
展开全部
我不知道你是用什么来编译的,我是visual6.0的。编译能够通过,知识提出一个警告,就是
int main()最后必须返回一个值,我给它一个return 0;就了事了。不知道是不是你的编译器的问题
int main()最后必须返回一个值,我给它一个return 0;就了事了。不知道是不是你的编译器的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
#include<string>
using namespace std;
int len[1000000];
int main()
{
int i,j,n;
while(cin>>i>>j)
{
int k=i; int s=j;
if(i>j)
{int t=i;i=j;j=t;}//这就是你要注意的问题了,输入值i可能大于j
memset(len,0,sizeof(len));
int maxlen=0;
for(n=i;n<=j;n++)
{
int m=n;
while(1)
{
len[n]++;
if(m==1) break;
else if(m%2!=0)
m=3*m+1;
else
m=m/2;
}
}
for(n=i;n<=j;n++)
if(len[n]>maxlen)
maxlen=len[n];
cout<<k<<" "<<s<<" "<<maxlen<<endl;
}
return 0;
}
#include<string>
using namespace std;
int len[1000000];
int main()
{
int i,j,n;
while(cin>>i>>j)
{
int k=i; int s=j;
if(i>j)
{int t=i;i=j;j=t;}//这就是你要注意的问题了,输入值i可能大于j
memset(len,0,sizeof(len));
int maxlen=0;
for(n=i;n<=j;n++)
{
int m=n;
while(1)
{
len[n]++;
if(m==1) break;
else if(m%2!=0)
m=3*m+1;
else
m=m/2;
}
}
for(n=i;n<=j;n++)
if(len[n]>maxlen)
maxlen=len[n];
cout<<k<<" "<<s<<" "<<maxlen<<endl;
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以通过,只要最后加上return 0; 或者把int main()改成void main()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int a,b,max=1,ta,tb;
while(~scanf("%d%d",&a,&b))
{
ta = a>b?b:a;
tb = a>b?a:b;
max = 1;
for(int i=ta;i<=tb;i++)
{
int temp=i,k=1;
while(temp!=1)
{
if(temp%2==0) temp=temp/2;
else temp=3*temp+1;
++k;
}
max=max>k?max:k;
}
printf("%d %d %d\n",a,b,max);
}
}
int main()
{
int a,b,max=1,ta,tb;
while(~scanf("%d%d",&a,&b))
{
ta = a>b?b:a;
tb = a>b?a:b;
max = 1;
for(int i=ta;i<=tb;i++)
{
int temp=i,k=1;
while(temp!=1)
{
if(temp%2==0) temp=temp/2;
else temp=3*temp+1;
++k;
}
max=max>k?max:k;
}
printf("%d %d %d\n",a,b,max);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询