美文网首页
B1005 继续(3n+1)猜想 (25分).cpp

B1005 继续(3n+1)猜想 (25分).cpp

作者: km15 | 来源:发表于2020-01-30 15:18 被阅读0次

// B1005 继续(3n+1)猜想 (25分).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
/*
题意:所有中间过程的数字称为非关键字,也就是找出所有非中间过程的字;

解题:
1、对输入的每一个数进行3n猜想,每个过程都录入hash,置为false
2、记得统计数字,方便空格取消
3、排序,
4、遍历的过程判断是否为true,是则输出,

learn && wrong
1、hash数字不能开太小了,1000以上,也可以在计算过程中判断一个数是否大于100,大于100就不管他,因为给出的数字在100以内
2、sort是算法库里的东西
3、还要累计多少个是非关键字,才能最后不输出空格!

*/

include <iostream>

include <cstring>

include <algorithm>

using namespace std;

int str[100];
bool hash1[1010];

int main()
{
memset(hash1, true, sizeof(hash1));
int n, m;
cin >> n;
for (int i = 0;i < n;++i) { //输入一个处理一个
cin >> str[i];
m = str[i];
while (m != 1) {
if (m % 2 == 0) m = m / 2;
else m = 3 * m + 1;
hash1[m] = false;
}
}

int num = 0;
for (int i = 0;i < n;++i) {
    if (hash1[str[i]] == true) ++num;
}

sort(str, str + n); //升序排列

for (int i = n - 1;i >= 0;--i) {
    if (hash1[str[i]] == true) {
        cout << str[i];
        num--;
        if (num != 0) cout << " ";
    }
}

return 0;

}

相关文章

  • B1005 继续(3n+1)猜想 (25分).cpp

    // B1005 继续(3n+1)猜想 (25分).cpp : 此文件包含 "main" 函数。程序执行将在此处开...

  • 1005

    //1005 继续(3n+1)猜想 (25)(25 分)//卡拉兹(Callatz)猜想已经在1001中给出了描述...

  • 1005. 继续(3n+1)猜想 (25)

    传送门 PAT (Basic Level) Practise (中文)1005. 继续(3n+1)猜想 (25))...

  • PAT-B 1005 继续(3n+1)猜想(C语言)

    题目 链接:PAT (Basic Level) Practice 1005 继续(3n+1)猜想 卡拉兹(Call...

  • [PAT (Basic Level) Practice]1005

    1005 继续(3n+1)猜想 (25 分) 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里...

  • PAT乙级习题C语言实现(VS13环境下)

    1002 写出这个数字 1004成绩排名 1005继续(3n+1)猜想 1006换个格式输出整数 1007素数对猜想

  • 1005. 继续(3n+1)猜想

    原题链接继续(3n+1)猜想: 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些...

  • 1005继续3n+1猜想

    问题描述:当我们验证卡拉兹猜想的时候,为了避免重复的计算,可以记录下递归过程中的每个数。例如对n=3进行验证的时候...

  • 1005 继续(3n+1)猜想

    卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时...

  • 1001

    //1001 害死人不偿命的(3n+1)猜想 (15)(15 分)//卡拉兹(Callatz)猜想://对任何一个...

网友评论

      本文标题:B1005 继续(3n+1)猜想 (25分).cpp

      本文链接:https://www.haomeiwen.com/subject/hoeithtx.html