题目链接 | 难度等级 | 完成状态 | 完成分数 | 最后编辑时间 | 失误原因(初次提交分数) |
---|---|---|---|---|---|
Cantor表 | ★☆☆☆☆ | 答案正确 | 100 | 2014/08/16 18:32:34 | 不等号取等问题(80) |
输出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; } |