POJ【1909】数论
来源:互联网 发布:lol 出装 数据网站 编辑:程序博客网 时间:2024/05/21 04:42
Description
One of the famous proofs of modern mathematics is Georg Cantor's demonstration that the set of rational numbers is enumerable. The proof works by using an explicit enumeration of rational numbers as shown in the diagram below.
In the above diagram, the first term is 1/1, the second term is 1/2, the third term is 2/1, the fourth term is 3/1, the fifth term is 2/2, and so on.
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
In the above diagram, the first term is 1/1, the second term is 1/2, the third term is 2/1, the fourth term is 3/1, the fifth term is 2/2, and so on.
Input
The input list contains a single number per line and will be terminated by endof-file.
Output
You are to write a program that will read a list of numbers in the range from 1 to 10^7 and will print for each number the corresponding term in Cantor's enumeration as given below.
Sample Input
3147
Sample Output
TERM 3 IS 2/1TERM 14 IS 2/4TERM 7 IS 1/4
对i累积求和,找到最靠近n并且<=n的一个数,判断它的下一条斜线是奇线是偶线,然后开始一个偶{x=i(自增),y=i(递减)},奇反之。
code:
#include<stdio.h>int main(){int i,j,k,n;while(scanf("%d",&n)!=EOF){if(n==0){printf("TERM 0 IS 0/0\n");continue;}int sum=0;for(i=1;;i++){sum+=i;if(sum>=n)break;}sum=sum-i;i=i-1;j=n-sum;if(i%2==1){printf("TERM %d IS %d/%d\n",n,j,i-j+2);}else{printf("TERM %d IS %d/%d\n",n,i-j+2,j);}}return 0;}
0 0
- POJ【1909】数论
- POJ 1411 数论+优化
- POJ 2429 数论
- POJ 2480 Longge 数论
- POJ 3090简单数论
- POJ 2689 数论
- POJ 2689 数论
- POJ 数论列表
- POJ 1845 数论
- POJ 3358 数论
- poj 1150 数论
- poj 1019 数论
- poj 2115(数论)
- POJ--1006--Biorhythms【数论】
- POJ 3292 数论
- POJ【数论/组合/博弈论】
- poj 1845 Sumdiv 数论
- poj数论(转)
- WordMiniTestingScreen
- Android组件属性
- shell的环境变量
- word list 19 to 21
- 开发可变参数函数
- POJ【1909】数论
- cocos2d-x 委托模式的巧妙运用——附源码(二)
- 电解电容(钽电容和吕电容)
- hadoop学习之搭配开发环境
- groovy入门 第05章 基本输入输出
- qt之旅-1纯手写Qt界面
- Uva 562— Dividing coins
- MySQL 慢查询日志分析及可视化结果
- 刘作虎避谈小米 或接受战略投资应对打压