hdoj 3784 继续xxx定律

xxx定律快要忘了

代码:

#include <stdio.h>
#include <string.h>
#define M 3000005
int a[M];
bool vis[M];
int temp[M];
int main()
{
    int n;
    while(scanf("%d", &n), n){
        int i, j;
        for(i = 0; i < n; i ++){
            scanf("%d", &a[i]);
        }
        memset(vis, 0, sizeof(vis));
        for(i = 0; i < n; i ++){
            if(vis[a[i]]) continue;
            int tem = a[i];
            while(tem != 1){
                if(tem%2 == 0) tem /=2;
                else tem = (tem*3+1)/2;
                if(tem < 1001)
                vis[tem] = 1;
            }
        }
        for(i = n-1, j = 0; i >= 0; i --){
            if(vis[a[i]] == 0) temp[j++] = a[i];
        }
        printf("%d", temp[0]);
        for(i = 1; i < j; i ++) printf(" %d", temp[i]);
        printf("\n");
    }
}

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3784

hdoj 3784 继续xxx定律

时间: 2024-07-29 07:20:42

hdoj 3784 继续xxx定律的相关文章

HDU 3782 xxx定律

xxx定律 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4606    Accepted Submission(s): 3333 Problem Description 对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止.请计算需要经过几步才能将n变到1,具体可见样例. Inpu

九度OJ 1031 xxx定律

题目1031:xxx定律 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4995 解决:3187 题目描述:     对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止. 请计算需要经过几步才能将n变到1,具体可见样例. 输入:     测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束.(1<=n<=10000) 输出:     对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行. 样例输入:

xxx定律(杭电oj3782)

xxx定律 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2759    Accepted Submission(s): 2035 Problem Description 对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止. 请计算需要经过几步才能将n变到1,具体可见样例. In

九度oj 1031 xxx定律 2009年浙江大学计算机及软件工程研究生机试真题

题目1031:xxx定律 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5153 解决:3298 题目描述:     对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止.    请计算需要经过几步才能将n变到1,具体可见样例. 输入:     测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束.(1<=n<=10000) 输出:     对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行. 样例输

九度oj 题目1031:xxx定律 题目1033:继续xxx定律

题目描述:     对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止.    请计算需要经过几步才能将n变到1,具体可见样例. 输入:     测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束.(1<=n<=10000) 输出:     对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行. 样例输入: 3 1 0 样例输出: 5 0 1 #include <cstdio> 2 #include

九度OJ—题目1031:xxx定律

题目描述:     对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止. 请计算需要经过几步才能将n变到1,具体可见样例. 输入:     测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束.(1<=n<=10000) 输出:     对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行. 样例输入: 3 1 0 样例输出: 5 0 来源: 2009年浙江大学计算机及软件工程研究生机试真题 答疑: 解题遇到问题

九度oj 题目1345:XXX定律之画X

题目描述: 给你一个n,然后让你输出F(n)规则是这样的,F(n)的输出结果是:F(n-1)     F(n-1)       F(n-1) F(n-1)      F(n-1) F(1)的输出结果是:X那么根据规则F(2)的输出结果应该是:X X  X  X X 输入: 题目有多组输入,每组输入一个n(n<=7). 当输入零或负数的时候结束输入. 输出: 对每组输入输出相应的F(n),每组输出最后一行是‘#’. 样例输入: 1 2 3 -1 样例输出: X # X X X X X # X X

1031.XXX定律

题目描述:     对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止. 请计算需要经过几步才能将n变到1,具体可见样例. 输入:     测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束.(1<=n<=10000) 输出:     对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行. 样例输入: 3 1 0 样例输出: 5 0 #include<iostream> using namespac

《程序设计技术》课程辅助学习资料

本文档提供课程相关的辅助学习资料. 阅读程序是提高程序设计水平的最为有效的方法,<程序设计技术>课程至少应该阅读后面提供链接博文中的基础部分.能够阅读完基础部分的博文,则可以给课程学习奠定一个坚实的基础. 自己编写程序也是学习编程必不可少的一个环节.自己编写是否正确可以通过OJ系统来验证.选做OJ的程序设计题方便于评价自己所写的程序是否正确.想要提高编写程序的能力并且达到更高的水平,从各个OJ中选做一些编程题是十分必要的. 文中提供了CCF-CSP认证考试历年 试题的第1题的题解.这些题解中都