首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

3n+1有关问题

2012-02-17 
3n+1问题求救,不知道错在哪里#includestdio.hint count(int a,int b){int max0,len0,a1while(ab){a

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,那么就会进入死循环,没运行过,看起来大概就是这样的。

热点排行