[NOIP1999] 提高组 洛谷P1014 Cantor表
生活随笔
收集整理的這篇文章主要介紹了
[NOIP1999] 提高组 洛谷P1014 Cantor表
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
題目描述
現(xiàn)代數(shù)學(xué)的著名證明之一是Georg Cantor證明了有理數(shù)是可枚舉的。他是用下面這一張表來證明這一命題的:
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 …
… 我們以Z字形給上表的每一項(xiàng)編號。第一項(xiàng)是1/1,然后是1/2,2/1,3/1,2/2,…
輸入輸出格式
輸入格式:
?
整數(shù)N(1≤N≤10000000)
?
輸出格式:
?
表中的第N項(xiàng)
?
輸入輸出樣例
輸入樣例#1:7 輸出樣例#1:
1/4
?
有各種各樣的暴力方法。
觀察發(fā)現(xiàn)第x行第y列的分?jǐn)?shù)是x/y
第n個斜行的分?jǐn)?shù)數(shù)量為n
先找到目標(biāo)分?jǐn)?shù)所在的斜行,然后挨個往左下方找,每次移動x++ y--
不知道是題目描述里的矩陣有問題,還是洛谷測試數(shù)據(jù)有問題,輸出的時候要輸出y/x才算對
?
1 /*by SilverN*/ 2 #include<algorithm> 3 #include<iostream> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 using namespace std; 8 int x,y; 9 int n; 10 int sum; 11 int main(){ 12 int i,j; 13 cin>>n; 14 sum=0; 15 for(i=1;i<=n;i++){ 16 if(sum+i>=n)break; 17 sum+=i; 18 } 19 x=i;y=1; 20 for(i=sum+1;i<n;i++){ 21 x--; 22 y++; 23 } 24 printf("%d/%d\n",x,y); 25 return 0; 26 }?
轉(zhuǎn)載于:https://www.cnblogs.com/SilverNebula/p/5949969.html
總結(jié)
以上是生活随笔為你收集整理的[NOIP1999] 提高组 洛谷P1014 Cantor表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hi3515的开发板 Hi3515 SD
- 下一篇: rust模组服没了_[怎么看rust服务