Cantor数表

Georg Cantor用这张数表证明了有理数是可枚举的

刘汝佳教主的白书上有这道题,不过貌似解答是错误的T_T

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字型编号。。。我怎么就不觉得是Z字型。。。明明是蛇形

1-1/1; 2-1/2; 3-2/1; 4-3/1; 5-2/2; 6-1/3.....

如下图

输出第N项的值:

样例输入:

3

14

7

12345

样例输出:

2/1

2/4

1/4

59/99

 

 1 #include <stdio.h>
2
3 int main(void)
4 {
5 int n;
6
7 while (scanf("%d", &n) == 1)
8 {
9 int k = 1;
10 while (k < n) //k为第N项所在行数
11 {
12 n -= k;
13 k++;
14 }
15 if (0 == k%2)
16 {
17 printf("%d/%d\n", n, k+1-n);
18 }
19 else
20 {
21 printf("%d/%d\n", k+1-n, n);
22 }
23 }
24
25 return 0;
26 }



 

 

 


转载于:https://www.cnblogs.com/RootJie/archive/2012/02/15/2353277.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值