有趣的數 【南陽oj 題目85】



(原題鏈接)點擊打開鏈接


有趣的數

時間限制:3000 ms  |  內存限制:65535 KB
難度:2
描述

把分數按下面的辦法排成一個數表。

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;
}


發佈了43 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章