题解 P1014 【Cantor表】
P1014 【Cantor表】
模拟题
建议在Excel上打出Cantor表,再找规律(还有一个好处是可以用来测试)
如图 如表:
1/1 1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9
2/1 2/2 2/3 2/4 2/5 2/6 2/7 2/8
3/1 3/2 3/3 3/4 3/5 3/6 3/7
4/1 4/2 4/3 4/4 4/5 4/6
5/1 5/2 5/3 5/4 5/5
6/1 6/2 6/3 6/4
7/1 7/2 7/3
8/1 8/2
9/1
(普及)在单元格中输入分数前先输入一个单引号,避免被判断为日期
#include<cstdio>
int main() {
int n, i=0, j=0;//前i条斜线一共j个数
scanf("%d", &n);
while(n>j) {//找到最小的i使得j>=n
i++;
j+=i;
}
if(i%2==1)
printf("%d/%d",j-n+1,i+n-j);//i的奇偶决定着斜线上数的顺序,n是第i条斜线上倒数第j-n+1个数
else
printf("%d/%d",i+n-j,j-n+1);//若i是偶数,第i条斜线上倒数第i个元素是(i+1-i)/i
return 0;
}