Compilation Error 杭电1032想不通啊!! 因为时间限制,函数调用基本没用上,代码在主函数又写一遍。
http://acm.hdu.edu.cn/showproblem.php?pid=1032[CODE]#include<stdio.h>intmain(){intLen...
http://acm.hdu.edu.cn/showproblem.php?pid=1032
[CODE]
#include <stdio.h>
int main()
{
int Lenth(int n);
int i,n,m,k,maxlenth;
while (scanf("%d%d",&m,&n),m+n)
{
maxlenth=Lenth(m);
for(k=m+1;k<=n;k++)
{
i=k;
int j=0;
while (i!=1)
{
if(i%2)
i=3*i+1;
else
i=i/2;
j++;
}
j++;
if(j>maxlenth)
maxlenth=j;
}
printf("%d %d %d\n",m,n,maxlenth);
}
return 0;
}
int Lenth(int n)
{
int j=0;
while (n!=1)
{
if(n%2)
n=3*n+1;
else
n=n/2;
j++;
}
j++;
return j;
}
[/CODE] 展开
[CODE]
#include <stdio.h>
int main()
{
int Lenth(int n);
int i,n,m,k,maxlenth;
while (scanf("%d%d",&m,&n),m+n)
{
maxlenth=Lenth(m);
for(k=m+1;k<=n;k++)
{
i=k;
int j=0;
while (i!=1)
{
if(i%2)
i=3*i+1;
else
i=i/2;
j++;
}
j++;
if(j>maxlenth)
maxlenth=j;
}
printf("%d %d %d\n",m,n,maxlenth);
}
return 0;
}
int Lenth(int n)
{
int j=0;
while (n!=1)
{
if(n%2)
n=3*n+1;
else
n=n/2;
j++;
}
j++;
return j;
}
[/CODE] 展开
1个回答
展开全部
你这个超时啊
#include<stdio.h>
int count(int x,int y)
{
int max=-1,count;
int i,t;
for(i=x;i<=y;i++)
{
count=0;
t=i;
while(t!=1)
{
count++;
if(t%2) t=3*t+1;
else t/=2;
}
count++;
if(max<count) max=count;
}
return max;
}
int main()
{
int a,b,t;
while(scanf("%d%d",&a,&b)==2)
{
printf("%d %d ",a,b);
if(a>b)
{
t=a;
a=b;
b=t;
}
printf("%d\n",count(a,b));
}
return 0;
}
#include<stdio.h>
int count(int x,int y)
{
int max=-1,count;
int i,t;
for(i=x;i<=y;i++)
{
count=0;
t=i;
while(t!=1)
{
count++;
if(t%2) t=3*t+1;
else t/=2;
}
count++;
if(max<count) max=count;
}
return max;
}
int main()
{
int a,b,t;
while(scanf("%d%d",&a,&b)==2)
{
printf("%d %d ",a,b);
if(a>b)
{
t=a;
a=b;
b=t;
}
printf("%d\n",count(a,b));
}
return 0;
}
追问
C++还没学。
程序中被调函数又在主函数实现了一遍,基本没调用定义的函数啊!反馈是编译错误。不知是为什么??
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询