吉祥数
来源:互联网 发布:杂志排版软件 编辑:程序博客网 时间:2024/04/29 16:46
[问题描述]
为了迎接圣诞,信息学兴趣小组的同学在辅导老师的带领下,举办了一个盛大的晚会,晚会的第一项内容是做游戏:猜数。老师给每位同学发一张卡片,每张卡片上都有一个编号(此编号为非负数,且小于255),每个编号互不相同。老师制定了以下的游戏规则:第一轮,每位同学将自己卡片上编号的各位数字进行平方后再相加得到一组新数,编号在这组新数中出现的同学淘汰出局,第二轮,余下的同学再将编号的各位数字进行立方相加得到一组新数,编号在这组新数中出现的同学再淘汰出局,第三轮,余下的同学再将编号的各位数字进行4次方相加得到一组新数,编号在这组新数中出现的同学再淘汰出局,……,以此类推,经过n轮后,仍留下来的同学,将获得圣诞特别礼物,卡片上的数即为2007年吉祥数。(假定班级人数不超过200人)
[输入文件]
输入文件ghillie .in 有两行,第1行为1个正整数n(n<8),表示有n轮游戏,第二行是卡片上互不相同的编号。
输出:剩下来的各个吉祥数,按从小到大顺序输出,每两个数之间有一个空格。
[输出文件]
输出文件ghillie .out是1行,为剩下来的各个吉祥数,按从小到大顺序输出,每两个数之间有一个空格。
[输入样例]
1
24 123 2 12 20 14 4 6 36 72
[输出样例]
2 6 12 24 72 123
解题思路
这个数据规模不是很大,简简单单的模拟就可以AC,但是有一点比较坑人的就是:每次必须先计算完所有的人的数字,再进行踢人,否则的话前面计算出来就立刻把后面的人踢除了,这样后面的那个人的数字就没有被计算,那么就会留下几个 不应该被留下的小孩。
这告诫我们模拟就要老老实实模拟,不要ZB,@显摆
代码
var j,i,sum,n:integer; a,b:array[1..200]of longint;function jie(n,k:integer):longint;var a,b,sum,ji,i:longint;begin sum:=0; while n>0 do begin a:=n mod 10; n:=n div 10; ji:=1; for i:=1 to k+1 do ji:=ji*a; sum:=sum+ji; end; exit(sum);end;procedure check(n:longint);var i:integer;begin for i:=1 to sum do if a[i]=n then begin a[i]:=0;exit;end;end;procedure qsort(b,e:integer);var l,r,t,m:longint;begin l:=b;r:=e;m:=a[(l+r)>>1]; while l<r do begin while a[l]<m do inc(l); while m<a[r] do dec(r); if l<=r then begin t:=a[l]; a[l]:=a[r]; a[r]:=t; inc(l); dec(r); end; end; if l<e then qsort(l,e); if b<r then qsort(b,r);end;begin readln(n); sum:=0; while not eoln do begin inc(sum); read(a[sum]); end; for i:=1 to n do begin fillchar(b,sizeof(b),0); for j:=1 to sum do if a[j]<>0 then b[j]:=jie(a[j],i); for j:=1 to sum do check(b[j]); end; qsort(1,sum); for i:=1 to sum do if a[i]<>0 then write(a[i],' ');end.测试点1 Accepted / 0ms / 260kB测试点2 Accepted / 0ms / 260kB测试点3 Accepted / 0ms / 260kB测试点4 Accepted / 0ms / 260kB测试点5 Accepted / 0ms / 260kB测试点6 Accepted / 0ms / 260kB测试点7 Accepted / 0ms / 260kB测试点8 Accepted / 0ms / 260kB测试点9 Accepted / 0ms / 260kB测试点10 Accepted / 0ms / 260kB
- 吉祥数
- 【其他】【RQNOJ】吉祥数
- RQNOJ 154 吉祥数
- 【t090】吉祥数
- 【模拟】rqnoj P154 吉祥数
- 吉祥三宝
- 虎年吉祥!
- 巨汗版吉祥三宝
- 《吉祥三宝》考研版
- 程序版吉祥三宝
- 程序版吉祥三宝:
- 程序版吉祥三宝
- 程序版吉祥三宝
- 《吉祥三宝》食堂版
- 程序员的吉祥三宝
- 程序版吉祥三宝
- 吉祥三宝之矿大版
- 吉祥三宝抗日宣言
- 质量百分百的一次成功
- 数据结构(六)循环队列的基本操作 入队 退队
- SignalR实现服务器与客户端的实时通信
- 封装用于图片的放大与缩小的类BaseImgView——iOS学习连载34
- 图像旋转(功能)
- 吉祥数
- 北京西城区的日子
- zabbix监控环境搭建指南---网上最最详细搭建过程
- HDOJ1231 最大连续子序列(dp)
- MVC4 入门
- 使用Servlet获取用户日志
- Course Schedule
- 第10章 对象和类
- 反汇编一个简单的C程序