| Read topic 
	求助这段哪儿有问题吗,实在是找不到问题了
	2013-03-02 19:58:13 Himdeng#include<stdio.h>int main()
 {
 int a,b;
 int tempa,tempb;
 int temp,k;
 int i=1,j=1;
 do
 {
 scanf("%d %d",&a,&b);
 if(a>b)
 {
 tempa=b;
 tempb=a;
 }
 else
 {
 tempa=a;
 tempb=b;
 }
 for(k=tempa;k<=tempb;k++)
 {
 temp=k;
 while(temp!=1)
 {
 if(temp%2==0)
 {
 temp=temp/2;
 j++;
 }
 else
 {
 temp=temp*3+1;
 j++;
 }
 if(j>i) i=j;
 }
 j=1;
 }
 printf("%d %d %d\n",a,b,i);
 i=1;
 }while(getchar()!=EOF);
 return 0;
 }
 
	Re:求助这段哪儿有问题吗,实在是找不到问题了
	2013-03-05 20:56:47 MyCodeStyle#include<stdio.h>int main()
 {
 int a,b;
 int tempa,tempb;
 int temp,k;
 int i=1,j=1;
 while(scanf("%d %d",&a,&b)!=EOF)
 {
 
 if(a>b)
 {
 tempa=b;
 tempb=a;
 }
 else
 {
 tempa=a;
 tempb=b;
 }
 for(k=tempa;k<=tempb;k++)
 {
 temp=k;
 while(temp!=1)
 {
 if(temp%2==0)
 {
 temp=temp/2;
 j++;
 }
 else
 {
 temp=temp*3+1;
 j++;
 }
 if(j>i) i=j;
 }
 j=1;
 }
 printf("%d %d %d\n",a,b,i);
 i=1;
 }
 return 0;
 }
 把输入部分改了一下,主要是你的输入多吸收了一个字符。
 标准的输入输出程序应该是这样的
 #include<stdio.h>
 int main()
 {
 int a,b;
 int tempa,tempb;
 int temp,k;
 int i=1,j=1;
 while(scanf("%d %d",&a,&b)!=EOF)
 {
 
 if(a>b)
 {
 tempa=b;
 tempb=a;
 }
 else
 {
 tempa=a;
 tempb=b;
 }
 for(k=tempa;k<=tempb;k++)
 {
 temp=k;
 while(temp!=1)
 {
 if(temp%2==0)
 {
 temp=temp/2;
 j++;
 }
 else
 {
 temp=temp*3+1;
 j++;
 }
 if(j>i) i=j;
 }
 j=1;
 }
 printf("%d %d %d\n",a,b,i);
 i=1;
 }
 return 0;
 }
 另外,你的程序还可以优化一下,在1 1000000范围上运算已经很慢了,几乎无法接受。
 
	Re:求助这段哪儿有问题吗,实在是找不到问题了
	2013-03-05 21:11:33 MyCodeStyle后面的代码没贴好,标准的输入输出应该是这样的。#include<stdio.h>
 int main()
 {
 long p,q,r;
 while(scanf("%ld %ld",&p,&q)!=EOF)
 {
 if(q>r) r=q-p;
 else r=p-q;
 printf("%ld",r);
 }
 return 0;
 }
 
 Reply |