清澄A1040. Cantor表
来源:互联网 发布:python爬虫开发 编辑:程序博客网 时间:2024/05/12 06:18
问题描述
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,然后是1/2,2/1,3/1,2/2...
你的任务是求表中第N项的值。
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,然后是1/2,2/1,3/1,2/2...
你的任务是求表中第N项的值。
输入格式
输入仅一个正整数n(1<=n<=100000)
输出格式
以分数形式输出表中的第n项(不用约分)
样例输入
7
样例输出
1/4
#include"stdio.h"
int main()
{
long n;
int i=1,t=1;
long sum=0;
int sheyu,k=0,h=0;
scanf("%ld",&n);
while(n!=sum)
{
if((sum+t)>n)//一旦不是在上端点,则进入这个
{
sheyu=n-sum;//(i-1)排后,多余的个数
printf("%d %d\n",i,sheyu);//第i排 第sheyu个
k=i-sheyu+1;
h=sheyu;
printf("%d/%d",k,h);
break;
}
sum=sum+t;
t++;
i++;
}
if(sum==n)//说明在端点
{
sheyu=i-1;
// printf("%d %d\n",i-1,sheyu); 所以这里的排数必须i-1。
k=i-sheyu;
h=sheyu;
printf("%d/%d",k,h);
}
return 0;
}
总结:本题就是一个简单的找规律题目,然后再运用简单的C语言知识进行表达。不涉及什么算法。(开心)
阅读全文
0 0
- 清澄A1040. Cantor表
- Tsinsen-A1040-cantor表
- 刷清橙OJ--A1040.Cantor表
- Cantor表
- Cantor表
- Cantor表
- cantor表
- Cantor表
- Cantor表
- Cantor表
- cantor表
- Cantor表
- Cantor表
- Cantor表
- Cantor表
- Cantor表
- Cantor表
- WikiOI 1083 Cantor表
- 泛刷水题记17.12.22
- spring cloud eureka
- c++之简述左值引用(&)与右值引用(&&)
- 微信开发篇章外篇 常用支付实现
- 10 实现Django投票的功能
- 清澄A1040. Cantor表
- ImageLoader 源码
- Antd使用心得-table组件
- 一个万用的hash function
- Centos安装Shadowsocks服务并开启BBR加速
- consul简介
- 手机销售系统练习
- javascript访问对象数组时要注意的问题
- 2017 acm icpc 上海final L 题(博弈)