(以“分类:模拟与排序 ==摘要== {{信息题|Cantor表|http://www.wikioi.com/problem/1083/|1|100|不等号取等问题}} ==题意== 排序。 ==题解== 好像...”为内容创建页面)
 
(题意修改)
第3行: 第3行:
 
{{信息题|Cantor表|http://www.wikioi.com/problem/1083/|1|100|不等号取等问题}}
 
{{信息题|Cantor表|http://www.wikioi.com/problem/1083/|1|100|不等号取等问题}}
 
==题意==
 
==题意==
排序。
+
输出Cantor表中的第N项。
 
==题解==
 
==题解==
 
好像经常在数学填空压轴遇到这种题。找规律呀。
 
好像经常在数学填空压轴遇到这种题。找规律呀。

2014年8月16日 (六) 19:36的版本

摘要

题目链接 难度等级 完成状态 完成分数 最后编辑时间 需要注意
Cantor表 ★☆☆☆☆ 答案正确 100 {{{time}}} 不等号取等问题
无法理解日期"{{{time}}}"无法理解日期"{{{time}}}"

题意

输出Cantor表中的第N项。

题解

好像经常在数学填空压轴遇到这种题。找规律呀。 很显然从左上到右下,第i斜行有i个数,然后容易得到第N个数在第line斜行,前(line-1)斜行共有sum个数,还剩下多少个数(require)。

for(line=0;sum<n;sum+=++line);
sum-=line;
require=n-sum;

观察容易得到i为奇数的时候从n/1开始,为偶数的时候从1/n开始。分奇偶讨论容易得到最后的分数形式。

错误分析

第一次写的时候第5行写作了sum<=n,导致恰好行末的时候会出现p/0的情况,WA80分。

代码

1083.cpp代码已折叠
展开折叠内容
#include<cstdio>
int main(){
  int n,line=0,sum=0,require;
  scanf("%d",&n);
  for(;sum<n;sum+=++line);
  sum-=line;
  require=n-sum;
  if(line%2)
    printf("%d/%d",line-require+1,require);
  else 
    printf("%d/%d",require,line-require+1);
  return 0;
}

链接

著作权声明[编辑]

关于[编辑]