- 描述
-
把分數按下面的辦法排成一個數表。
1/1 1/2 1/3 1/4.....
2/1 2/2 2/3....
3/1 3/2 ....
4/1.....
.........我們以z字型方法給上表的每項編號。特定方法:第一項是1/1,然後是1/2、2/1、3/1、2/2、1/3、1/4、2/3……。編程輸入項號N(1<=N<=100000),輸出表中第N項。
- 輸入
- 第一行有一個整數m(0<m<=10),表示有m組測試數據;
隨後有m行,每行有一個整數N; - 輸出
- 輸出表中第N項
- 樣例輸入
-
4
-
3
-
14
-
7
-
12345
- 樣例輸出
-
2/1
-
2/4
-
1/4
-
59/99
-
-
題解:本題是一道規律題.分數按照斜線排列,第x條斜線有x個數,前x條斜線一共有1+2+3+······+x個數。
-
且當x爲偶數時,第x條斜線上倒數第i個數爲(x+1-i)/i;
-
當x爲奇數時,第x條斜線上倒數第i個數爲(x+1-i)/i;
-
-
-
-
-
#include <iostream> #include <cstdio> using namespace std; int main() { int t,n; cin>>t; while(t--) { cin>>n; int x=0,y=0; while(y<n) { x++; y+=x; } if(x%2==0) cout<<x+1-(y-n+1)<<"/"<<y-n+1<<endl; else cout<<y-n+1<<"/"<<x+1-(y-n+1)<<endl; } return 0; }
有趣的數 【南陽oj 題目85】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.