博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【1083】code[vs] 1083 Cantor表 1999年NOIP全国联赛普及组
阅读量:4327 次
发布时间:2019-06-06

本文共 1474 字,大约阅读时间需要 4 分钟。

嘿嘿嘿,又是一发水题……

【传送门】:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>原题>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

1083 Cantor表                                1999年NOIP全国联赛普及组

时间限制: 1 s
空间限制: 128000 KB
题目等级 : 白银 Silver
题目描述 Description

现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … … 我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…

输入描述 Input Description

整数N(1≤N≤10000000)

输出描述 Output Description

表中的第N项

样例输入 Sample Input

7

样例输出 Sample Output

1/4

数据范围及提示 Data Size & Hint

见描述

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>题目分析>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
一眼看去,还以为要一个个枚举,把整个表打出来,然后发现图越看越熟悉,将图旋转一下,这不就是小学书上的数字三角之类的吗mdzz……

2016-08-06_180136

很明显的嘛*&¥……不是吗?

嗯,然后呢,可以发现每行结束【单数行的结束的数在最右边,偶数行相反】的数的序号很明显就是【i表示第i行】123【就是那个高斯求和公式(首项+末项)*项数/2  化简后得出的结果】,而每行的开始那个数的序号就是123-i+1 , 所以要想知道给定序号的数在第几行,就可以从第一行到4500行进行枚举【这个4500是我用FOR循环估算出当n=4500时123大致接近10000000时(大概一千万过一点)】,当第一次发现给出的n小于123时就说明找到了第n个所在的行数i,然后进行处理后跳出循环输出结果就OK了啊

然后发现数的规律【一下都是旋转之后的状态】是单数行的分子都是从左往右递增,偶数行的分子从右往左递增,对应行的分母刚好相反滴,知道规律就好办了嘛……不说了,上代码……

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>我的代码>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

var
u,d,n,i:longint;
begin
read(n);
for i:= 1 to 4500 do
if (i+i*i) div 2>= n then

                     begin

if odd(i) then begin//如果是单数行就是分子从左往右递增,

                                          u:=(i+i*i) div 2-n+1;

d:= n+i-(i+i*i) div 2;
end
else begin//偶数行和单数行相反
d:=(i+i*i) div 2-n+1;
u:= n+i-(i+i*i) div 2;
end;
break;//别忘记跳出循环
end;
write(u,'/',d);//输出结果
end.

嘿嘿嘿,其实在guide上调试完成后提交,结果发现一次性通过,感动得那是……

 

【哎呀~码字码的好幸苦……如果对你有帮助的话,麻烦在下面咩个声呗……谢谢

转载于:https://www.cnblogs.com/bobble/p/5744734.html

你可能感兴趣的文章
Markdown指南
查看>>
influxDB的安装和简单使用
查看>>
JPA框架学习
查看>>
JPA、JTA、XA相关索引
查看>>
机器分配
查看>>
php opcode缓存
查看>>
springcloud之Feign、ribbon设置超时时间和重试机制的总结
查看>>
Go 结构体
查看>>
LINQ巩固
查看>>
观看杨老师(杨旭)Asp.Net Core MVC入门教程记录
查看>>
UIDynamic(物理仿真)
查看>>
Windows下安装Redis
查看>>
迷宫实现
查看>>
【字符编码】Java字符编码详细解答及问题探讨
查看>>
学习操作系统导图
查看>>
在线的JSON formate工具
查看>>
winform非常实用的程序退出方法!!!!!(转自博客园)
查看>>
xml解析
查看>>
centos安装vim
查看>>
linux工作调度(计划任务)
查看>>