首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

二零零九年第3题

2013-11-08 
2009年第3题题目地址:http://jobdu.sinaapp.com/problem.php?pid1033给的数据中 有重复的比如:35 3 3还得

2009年第3题

题目地址:http://jobdu.sinaapp.com/problem.php?pid=1033

给的数据中 有重复的值
比如:
3
5 3 3
还得重复输出 把重复去掉都不对。推恶心。。。

C语言源码:

#include<stdio.h>#define maxsize 900000int mark[maxsize];int main(){int n,i,a[501],stack[501],top,j;scanf("%d",&n);while(n){for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<maxsize;i++)mark[i]=0;mark[1]=-1;top=0;for(i=0;i<n;i++){if(mark[a[i]]>0){stack[top++]=a[i];mark[a[i]]++;}if(mark[a[i]]==0){mark[a[i]]=1;stack[top++]=a[i];if(a[i]%2==0)a[i]/=2;elsea[i]=(3*a[i]+1)/2;while(mark[a[i]]>=0){mark[a[i]]=-1;if(a[i]%2==0)a[i]/=2;elsea[i]=(3*a[i]+1)/2;}}}j=0;while(j<top&&mark[stack[j]]<=0)j++;for(i=top-1;i>j;i--){if(mark[stack[i]]>0)printf("%d ",stack[i]);}printf("%d\n",stack[i]);scanf("%d",&n);}}



热点排行