3n+1有关问题
3n+1问题
求救,不知道错在哪里
#include<stdio.h>
int count(int a,int b)
{
int max=0,len=0,a1;
while(a<=b)
{
a1=a;
while(a1!=1)
{
a1=a;
if(a1%2==0)
a1=a1/2;
else
a1=3*a1+1;
len++;
}
if (len>max)
max=len;
len=0;
a++;
}
return max;
}
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d %d %d",a,b,count(a,b));
return 0;
}
------解决方案--------------------
首先建议lz在代码中加入注释,增强可读性;然后就是问题不清,可以在描述的具体一些;最后是代码的问题,在count函数中的第二个while循环中,a1=a这一语句,由于a在循环中没有变化,所以如果a不是2,那么就会进入死循环,没运行过,看起来大概就是这样的。
求救,不知道错在哪里
#include<stdio.h>
int count(int a,int b)
{
int max=0,len=0,a1;
while(a<=b)
{
a1=a;
while(a1!=1)
{
a1=a;
if(a1%2==0)
a1=a1/2;
else
a1=3*a1+1;
len++;
}
if (len>max)
max=len;
len=0;
a++;
}
return max;
}
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d %d %d",a,b,count(a,b));
return 0;
}
------解决方案--------------------
首先建议lz在代码中加入注释,增强可读性;然后就是问题不清,可以在描述的具体一些;最后是代码的问题,在count函数中的第二个while循环中,a1=a这一语句,由于a在循环中没有变化,所以如果a不是2,那么就会进入死循环,没运行过,看起来大概就是这样的。