Cantor表(中等)

现代数学的著名证明之一是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,…


输入

首先输入一个整数T,表示下面有T组数据

每组数据包含一个整数N(1≤N≤10000000)

输出

输出表中的第N项.

2

2

3

1/2

2/1

题目分析

这是NoI的一道题目,不过题目比较有创意也比较适合新生,就是一道简单的找规律的题目,首先找到第N个数应该在第几个斜行,然后判断这一行是奇数还是偶数,偶数分母递减,分子递增,奇数反过来即可,斜行增长的规律就是单调递增

#include<stdio.h>

int main()
{
    int T;

//    freopen("1.in", "r", stdin);
//    freopen("1.out", "w", stdout);
    scanf("%d", &T);

while(T--)
    {
        int n, i;

scanf("%d", &n);

for(i=1; n>0; i++)//求出在n行
            n -= i;

n += i-1;//求在第i行的第几个数

if((i-1)%2 == 0)
            printf("%d/%d\n", n, i-n);
        else
            printf("%d/%d\n", i-n, n);
    }

return 0;
}

时间: 2024-11-07 03:03:16

Cantor表(中等)的相关文章

codevs 1083 1083 Cantor表【模拟+二分改进】

题目链接: http://codevs.cn/problem/1083/ 一个模拟题,列表出来就是酱紫: 这样为了找到数据在哪一组,很明显就要二分一下,自己写一个改进的二分,类似STL中的lower_bound... 1 #pragma comment(linker, "/STACK:16777216") //防爆栈 2 #include<iostream> 3 #include<algorithm> 4 #include<cstdio> 5 #in

【1083】code[vs] 1083 Cantor表 1999年NOIP全国联赛普及组

嘿嘿嘿,又是一发水题…… [传送门]:http://codevs.cn/problem/1083/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>原题>>>>>>>>>>>>>>>>>>>>

1083 Cantor表

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/

luogu Cantor表

P1482 Cantor表 我并不知道为什么我只得了20分! #include<iostream> #include<cstdio> using namespace std; int gcd(int x,int y) { // int z; if(y==0) return x; else return gcd(y,x%y); } int main() { int a,b,c,d,m,n,k,l,mm,nn; scanf("%d/%d",&a,&b

C语言程序设计100例之(3): Cantor表

例3    Cantor表 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1  1/2  1/3  1/4  …… 2/1  2/2  2/3  …… 3/1  3/2  …… 4/1  …… …… 现以z字型方法给上表的每项编号.方法为:第一项是1/1,然后是1/2.2/1.3/1.2/2.1/3.1/4.2/3……. 输入格式 整数N(1≤N≤10000000) 输出格式 表中的第N项 输入样例 7 输出样例 1/

回档|Cantor表

题目描述 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/output 输入格式: 整数N(1≤N≤10000000)

P1014 Cantor表

洛谷 p1014 题目描述 现代数学的著名证明之一是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,- 输入输出格式 输入格式: 整数N(1≤N≤10000000) 输出格式: 表中的第N项 输入输出样例 输入样例#1: 7 输出样

3.Cantor表

时间限制: 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,… 输入描述 Inpu

codevs1083 Cantor表

题目描述 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 Descript