问题遇到的现象和发生背景
码哥猜想
时间限制:1秒
占用内存: 128 M
小码哥第一次看到了” 角谷猜想”:
“对于任意一个正整数,如果是奇数,则乘3加1 ,如果是偶数,则除以2 ,得到的结果再按照上述规则重复处理,最终总能够得到1.”数学的简洁与优美让小码哥惊叹不已,小码哥大受启发,提出了”码哥猜想”:
“对于100以内(包括100)任意-个正整数 ,如果是奇数,则乘5减1 ,如果是偶数,则除以2 ,得到的结果再按照上述规则重复处理,最终总能够得到1.
很不幸,小码哥发现自己的猜想对于100以内的正整数并不是完全成立,于是小码哥想求出100以内满足自己猜想的正整数,来研究其性质。
格式
输入格式:无输入。
输出格式:输出一-行若干个用空格分隔的整数,表示100以内所有满足”码哥猜想”的正整数,从小到大输出。
用代码块功能插入代码,请勿粘贴截图
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<100;i++)
{ j=i;
do
{
if(j%2==1)
j=j*3+1;
else if(j%2==0)
j=i/2;
}while(j!=1&&j<=10000000);
if(j==1)
{
printf("%d",i);
}
}
return 0;
}
运行结果及报错内容
超时( Time Limit Exceed )
运行时间: 1000ms
占用内存: 152KB
得分:0
Compile Successfully.
Test Point #0: Time Limit Exceed, Time = 1000 ms, Memory = 152 KB,Score = 0
Time Limit Exceed, Time = 1000 ms,Memory = 152 KB,Score = 0
我的解答思路和尝试过的方法
从1到99依次进行循环,内部是do-while循环,当j等于1或大于10^7时跳出循环,找出100以内符合角谷猜想的数。
我想要达到的结果
输入:无
输出:1 2 3 4 5 6 7 8 (后面均为满足条件的正整数)