九度OJ 题目1033:继续xxx定律
来源:互联网 发布:知乎 搞笑 编辑:程序博客网 时间:2024/06/05 07:03
一题目描述:
当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4,2称为覆盖数。现在输入n个数字a[i],根据关键数与覆盖数的理论,我们只需要验证其中部分数就可以确定所有数满足xxx定律,输出输入的n个数中的关键数。如果其中有多个关键数的话按照其输入顺序的逆序输出。
输入:
输入数据包含多个用例,每个用例首先包含一个整数n,然后接下来一行有n个整数a[i],其中: 1<=n<=500, 1<a[i]<=1000
输出:
请计算并输出数组a中包含的关键数,并按照其输入顺序的逆序输出,每个用例输出占一行。
样例输入:
3
3 8 4
5
3 8 4 7 15
5
3 8 4 15 7
0
样例输出:
3
15 7 3
7 15 3
二.题目分析
利用布尔数组记录关键数或者覆盖数,题中求解的是整个数组的关键数,因此数组中的每个数都要判断。
三.代码
#include <stdio.h>#include <stdlib.h>#define MAX 1010int key[MAX];int main(){ int n,a[1000],i,temp,flag=1; while(1) { scanf("%d",&n); if(n==0) break; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<MAX;i++) key[i]=0; for(i=0;i<n;i++) { temp=a[i]; while(temp!=1) { if(temp%2==0) { temp /=2; key[temp]=1; } else temp=temp*3+1; } } flag=1; for(i=n-1;i>=0;i--) { if(flag&&!key[a[i]]) { printf("%d",a[i]); flag=0; } else if(!key[a[i]]) printf(" %d",a[i]); } printf("\n"); } return 0;}
0 0
- 九度OJ 题目1033:继续xxx定律
- 九度OJ 题目1033:继续xxx定律
- 九度oj 题目1033:继续xxx定律 ZOJ 【ZJU2009考研机试题3】
- 九度OJ 1033:继续xxx定律 (基础题)
- 九度OJ题目1031:xxx定律
- 九度OJ 题目1031:xxx定律
- 九度OJ-题目1031:xxx定律
- 九度OJ-题目1031 xxx定律
- 九度1033:继续xxx定律
- 九度[1033]-继续xxx定律
- 题目1033:继续xxx定律
- 题目1033:继续xxx定律
- 题目1033:继续xxx定律
- 题目1033:继续xxx定律
- 题目1033:继续xxx定律
- 题目1033:继续xxx定律
- 九度OJ—题目1031:xxx定律
- 九度OnlineJudge之1033:继续xxx定律
- Android之Notification的推荐用法
- mysql 高可用6
- 我的前端笔记 字符串整理
- iOS开发之解析XML格式数据
- hdu 1312 Red and Black(DFS)
- 九度OJ 题目1033:继续xxx定律
- JS和C语言判断闰年
- 范师兄的面经
- HDOJ题目4417 Super Mario(划分树求区间比k小的个数+二分)
- 函数实现不放在头文件的原因,及何时可以放头文件的情况
- 【android】利用getViewTreeObserver().addOnGlobalLayoutListener()获得一个视图的高度
- Qt的学习记录卡
- Linux最常用的20条命令
- MySQL中的数据类型