cantor数表

来源:互联网 发布:southrom知乎 编辑:程序博客网 时间:2024/04/29 06:41

/*
问题 A : 小俞同学的数表
时间限制:1 秒内存限制:128 兆特殊判题: 否 提交:44解决: 11
题目描述
小俞同学,最近勤学苦练数学,对一种数表产生了兴趣。
数表如下:
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
她冥思苦相了好久,貌似摸到了一点规律,但是她不知道自己的规律找的对不对,所以需要你来写一个程序来判断。

输入格式
每行一个n(1<=n<232).
输出
对于输入的n,输出第n项。
第一项:1/1
第二项:1/2
第三项:  2/1
第四项:3/1
第五项:2/2.

样例输入
3
14
7
12345
样例输出
2/1
2/4
1/4
59/99
*/ 

#include<stdio.h>//因为此题要求数据大,所以A不掉需要改成longlong型,不过代码可参考#include<math.h>int main(){int N;while(scanf("%d",&N)!=EOF){     int k=(int)ceil(((sqrt(8*N+1)-1)/2));//int k=(int)floor((sqrt(8.0*N+1)-1)/2-(1e-9))+1;刘汝佳书中     int s=k*(k+1)/2;//printf("k=%d\n",k);     if(k&1)            printf("%d/%d\n",k-s+N,s-N+1);     else         printf("%d/%d\n",s-N+1,k-s+N);}return 0;}


 

0 0
原创粉丝点击