您的位置:首页 > 其它

【3x+1猜想】思考:x一定会缩减成比它小的值

2016-02-06 20:23 330 查看
//寻找x缩减的第一个值
#include <iostream>
#include <fstream>

using namespace std;

const int GI_MAX = 0xFFFF;
int arr[GI_MAX + 1] = { 0 };

void forTest(int iMax);

int main(char argc, char argv[])
{
memset(arr, 0, GI_MAX + 1);

forTest(GI_MAX);
getchar();
}

int liTest3Xp1(int iMax)
{
int i_now = iMax;
while (i_now > 1 && i_now < 0xFFFFFFF)// 防止溢出
{
if (i_now % 2 == 0)
{
i_now /= 2;
}
else
{
i_now = i_now * 3 + 1;
}

if (i_now < iMax && arr[i_now])
{
return i_now;
}
}

if (i_now == 1)
{
return iMax;
}
else
{
return 0;
}
}

void forTest(int iMax)
{
ofstream  o_f;
o_f.open("3Xp1.txt");

for (int i = 1; i < iMax; i++)
{
arr[i] = liTest3Xp1(i);

if (i % 2)
{
o_f << i << "->" << arr[i] << endl;
}

if (arr[i] == 0)
{
cout << "error" << endl;
break;
}
}

o_f.close();
cout << "end!";
}

//根据结果发现规律不能啊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  3x 1 缩减