九度OJ 题目1033:继续xxx定律
[cpp]/********************************** 日期:2013-2-4* 作者:SJF0115* 题号: 九度OJ 题目1033:继续xxx定律* 来源:http://ac.jobdu.com/problem.php?pid=1033* 结果:AC* 来源:2009年浙江大学计算机及软件工程研究生机试真题* 总结:**********************************/#include<stdio.h>#include<string.h>int key[1000000];//关键数 key数组要开的尽量大int main(){int i,n,temp;int a[100000];//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);while(scanf("%d",&n) != EOF && n != 0){//输入数据for(i = 0;i < n;i++){scanf("%d",&a[i]);}memset(key,0,sizeof(key));for(i = 0;i < n;i++){temp = a[i];//求解覆盖数,标记为1while(temp != 1){//如果是偶数,就把temp砍掉一半if(temp % 2 == 0){temp = temp / 2;}//如果是奇数,把temp变成 3*temp+ 1后砍掉一半else{temp = (temp * 3 + 1) / 2;}//出现在求解序列中标记为1key[temp] = 1;}//while}//forint flag = 0;//逆序输出关键数(序列中没有标记为1的即为关键数)for(i = n-1;i >= 0;i--){if(key[a[i]] == 0){if(flag == 1){printf(" ");}printf("%d",a[i]);flag = 1;}}printf("\n");}return 0;}/********************************** 日期:2013-2-4* 作者:SJF0115* 题号: 九度OJ 题目1033:继续xxx定律* 来源:http://ac.jobdu.com/problem.php?pid=1033* 结果:AC* 来源:2009年浙江大学计算机及软件工程研究生机试真题* 总结:**********************************/#include<stdio.h>#include<string.h>int key[1000000];//关键数 key数组要开的尽量大int main(){int i,n,temp;int a[100000];//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);while(scanf("%d",&n) != EOF && n != 0){//输入数据for(i = 0;i < n;i++){scanf("%d",&a[i]);}memset(key,0,sizeof(key));for(i = 0;i < n;i++){temp = a[i];//求解覆盖数,标记为1while(temp != 1){//如果是偶数,就把temp砍掉一半if(temp % 2 == 0){temp = temp / 2;}//如果是奇数,把temp变成 3*temp+ 1后砍掉一半else{temp = (temp * 3 + 1) / 2;}//出现在求解序列中标记为1key[temp] = 1;}//while}//forint flag = 0;//逆序输出关键数(序列中没有标记为1的即为关键数)for(i = n-1;i >= 0;i--){if(key[a[i]] == 0){if(flag == 1){printf(" ");}printf("%d",a[i]);flag = 1;}}printf("\n");}return 0;}[cpp] /********************************** 日期:2013-2-5* 作者:SJF0115* 题号: 九度OJ 题目1033:继续xxx定律* 来源:http://ac.jobdu.com/problem.php?pid=1033* 结果:AC* 来源:2009年浙江大学计算机及软件工程研究生机试真题* 总结:**********************************/#include<stdio.h>#include<string.h>int key[1001];int a[500];int main(){int n,i,k;//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);while(scanf("%d",&n)!=EOF && n != 0){memset(key,0,sizeof(key));for(i = 0;i < n;i++){scanf("%d",&k);a[i]=k;while(k!=1){//如果是奇数,把k变成 3*k+ 1后砍掉一半if(k % 2){k = (k*3+1) / 2;&n补充:软件开发 , C++ ,
上一个:GUN C 扩展之括号中的复合表达式
下一个:九度教程第66题
- 更多C/C++疑问解答:
- 关于c++的cout输出的问题。
- 在学校里学过C和C++,不过学的很一般,现在自学C#,会不会很难?
- 全国计算机二级C语言笔试题
- 已知某树有2个2度结点,3个3度结点,4个4度结点,问有几个叶子结点?
- c++数据结构内部排序问题,整数排序
- 2012九月计算机二级C语言全国题库,,急求急求
- 如果assert只有一个字符串作为参数,是什么意思呢?
- C语言中,哪些运算符具有左结合性,哪些具有右结合性,帮忙总结下,谢谢了!
- 为什么用结构体编写的程序输入是,0输不出来啊~~~
- 将IEEE—754的十六进制转化为十进制浮点类型,用C或C++都行,多谢各位大侠啊,非常感谢!
- 为什么这个程序求不出公式?
- 这个链表倒置的算法请大家分析下
- c语言函数库调用
- C语言unsigned int纠错
- C语言快排求解啊