pat乙级测试第一题(3*n+1)/2猜想,测试点为0,1,2时出错

#include
#include
int main()
{
int n, p, ts = 0;
scanf("%d", &n);
if (n == 0)
{
printf("0不是正整数");
}
if (n == 1)
{
printf("%d", ts);
}
while ((n > 1) && (n <= 1000))
{
if ((n % 2) == 0)
{
p = n / 2;
}
else
{
p = (3 * n + 1) / 2;
}
n = p;
ts = ts + 1;

}
printf("%d", ts);

}

http://www.cnblogs.com/fengyucode/p/5427550.html

说实话我是真心不懂(3*n+1)/2猜想是什么东西,你能详细描述一下你的问题,不然真心爱莫能助。

当n=0,1,2时分别对应
0不是正整数
0

0
0

1

http://blog.csdn.net/liuchuo/article/details/51994889