Python的输出、判断、循环函数:Luogu1014Cantor表
原题链接:https://www.luogu.com.cn/problem/P1014
Cantor表
题目描述
现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
1/11/11/1 , 1/21/21/2 , 1/31/31/3 , 1/41/41/4, 1/51/51/5, …
2/12/12/1 , 2/22/22/2 , 2/32/32/3, 2/42/42/4, …
3/13/13/1 , 3/23/23/2, 3/33/33/3, …
4/14/14/1, 4/24/24/2, …
5/15/15/1, …
…
我们以 Z 字形给上表的每一项编号。第一项是 1/11/11/1,然后是 1/21/21/2,2/12/12/1,3/13/13/1,2/22/22/2,…
输入格式
整数NNN(1≤N≤1071 \leq N \leq 10^71≤N≤107)。
输出格式
表中的第 NNN 项。
输入输出样例
输入 #1
7
输出 #1
1/4
题解
显然,每斜排的长度依次递增,我们可以枚举最小的满足i×(i+1)≥Ni\times (i+1)\ge Ni×(i+1)≥N的iii就能找到第NNN个数在第iii排,再根据同一排的分数分子分母之和为i+1i+1i+1,并判断一下iii的奇偶性,即可找到第NNN个数。
代码
为了编写这个程序,我们需要先用forforfor循环枚举1∼N1\sim N1∼N的所有整数找到iii(事实上可以直接在N\sqrt{N}N附近找,但是为了练习循环语句,姑且用这个不那么快的办法)。
PythonPythonPython的forforfor循环可以直接枚举一个集合中的元素,而不是像CCC++那样先枚举下标,再通过下标访问对应元素。当然,在这里我们并不需要这么复杂,直接枚举数就行了,可以用函数range(start,end,step)range(start,end,step)range(start,end,step)返回的一个数组来规定一个枚举的范围,startstartstart为枚举的起点(不填时默认为000),endendend是必填参数,为枚举的终点+1+1+1(即range(3)=[0,1,2]range(3)=[0,1,2]range(3)=[0,1,2]),而stepstepstep为数之间的间隔,当我们需要使用stepstepstep参数时,必须将startstartstart参数也加上,否则range(end,step)range(end,step)range(end,step)函数会返回一个end∼stepend\sim stepend∼step的数组。
判断语句与CCC++区别不大,但是习惯CCC++而又初学PythonPythonPython的人(比如我)很容易漏掉冒号。
PythonPythonPython的输出函数也非常强大,它可以直接以对应的数据类型输出数据而不需要像CCC++那样让编程者通过%d
、%c
这样的符号来人为规定。同时,它还可以设置间隔符sepsepsep,默认间隔符为空格,如果不想要间隔,可以设为sep=''
,即间隔符为空,设置其他间隔符类似,如sep=','
。
代码
n=int(input())
for i in range(1,n):if i*(i+1)/2>=n:break
a=int(n-i*(i-1)/2)
if i%2==0:print(a,'/',i+1-a)
else:print(i+1-a,'/',a,sep='')
Python的输出、判断、循环函数:Luogu1014Cantor表相关推荐
- 九九乘法表python语言编程软件_编写Python程序,输出如下的九九乘法表_学小易找答案...
[其它]写出下图的梯形图程序对应的语句表 (26.0分) [简答题]PLC一般的编程语言有几种?分别是什么? (5.0分) [其它]定义一个getMax函数,返回三个数(从键盘输入的整数)中的最大值. ...
- python基础课程2(看代码看注释)--条件判断|循环|函数|生成器|类
##人生苦短,我用python ##课程内容 #条件判断 #循环 #类:简单介绍类的用法##条件判断 #if condiction:# dosomething #else: # dosomething ...
- python格式化输出以及format()函数
1.格式化输出 # 根据我们用户的需求,在指定的位置输出内容 """ %s 格式化输出字符串 str %d 格式化输出有符号的整数 %f 格式化输出浮点数 "& ...
- python用循环结构求平均值_有python的输出问题;循环总数和平均值
我的嵌套循环有一些输出问题,通常我会使用break在代码中添加一些行或print() 当我在我的代码中使用print()时,我的输出看起来像是在新行上输入总数而不是我想要的 以下是我当前输出的图片,我 ...
- 07_Python的控制判断循环语句1(if判断for循环)_Python编程之路
Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条 ...
- python条件输出_python基础(二)条件判断、循环、格式化输出
继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...
- Python中的判断语句及循环
Python中的判断语句及循环 文章目录 Python中的判断语句及循环 一.判断(if)语句 01. 开发中的应用场景 程序中的判断 判断的定义 02. if 语句体验 2.1 if 判断语句基本语 ...
- Python教程学习简记1--Python数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set
本文主要是学习Python基础: Python数据类型和变量 字符串和编码 list和tuple 条件判断 循环 dict和set 本文根据廖雪峰的官方网站-Python教程,认真学习,一步一步实操并 ...
- Python的逻辑判断和循环 || 打印九九乘法表
Python的逻辑判断和循环 1.if elif else条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. if <条件判断1>: <执行1> elif ...
- python中len和range函数_for循环len函数和range函数的运用
函数:len() 作用:返回字符串.列表.字典.元组等长度 语法:len(str) 参数: str:要计算的字符串.列表.字典.元组等 返回值:字符串.列表.字典.元组等元素的长度 实例 1.计算字符 ...
最新文章
- 移动端布局规范-固定页头页尾-中间随高度滑动
- 北理工校友发明文言文“填词大师”,断句、造词都能做,高考文言文满分靠它了...
- vue在js上处理后台返回的数组_vuejs 根据后台返回数组,渲染图片路径
- AI理论知识基础(26)-相对熵,KL散度
- vlc集成c#_C#WinForm程序调用VLC异常
- T2 Funcin T1,out T2(T1 arg)
- Yann LeCun送你的春节大礼:免费学习全部2020春季深度学习课程
- jsp之jsp内置对象
- Eureka是干什么的?
- 来自H3C的降维打击:H3C BX54鲸路由评测体验
- 《德鲁克管理思想精要》读书笔记
- ORACLE账户提示EXPIRED(GRACE)问题解决
- 百度地图截取指定区域坐标(可伸拉标记点)
- gbd调试的基本使用方法
- 51单片机数码管计数器
- 曾善美一女大学生的创业之路
- 基于matlab的语音信号去噪毕业论文,MATLAB的FIR数字滤波器语音信号的去噪研究和仿真...
- FPGA(九)RTL代码之五(基本电路设计2)
- VUE 字符串拼接 各种拼接
- aardio利用sunny中间件实现只显示网页部分内容