C++でBackjun 1193問題を解決(点数を探す)


1193番スコアリンクの検索

問題の概要


ジグザグに配列されたスコアには、入力された数番目のスコアが出力されます.

コード#コード#

#include <iostream>

using namespace std;

int main()
{
  int x;  // 입력
  cin>>x;
  int count=0;  // 지그재그의 순서
  while(x>0)  // x = 떨어져 있는 거리
  {
    count++;
    x-=count;
  }
  if(count%2==0)  // 짝수면 분자가 증가
  {
    cout << count+x << "/" << 1-x;
  }
  else  // 홀수면 분모가 증가
  {
    cout << 1-x << "/" << count +x;
  }
}

に答える


コードはhttps://codingplus.tistory.com/124を参照して記述される.
igeの順序は分母と分子の増減を決定するため,入力値がどの順序であるかを知る必要がある.
				그림 출처 = https://nhs0912.tistory.com/56
            
上図のように、
各行の右端の数字は奇数か奇数か、分母が増加し、分子が減少した場合、分子が増加し、分母が減少した場合がある.
これにより分岐の順序が求められ、1つの分岐順序の最後の点数からどのくらい離れているか(例えば、1/4距離1/4->2/3->3/2->4/1順序の最後の4/1距離3)を用いて出力値が求められる.

注意点


便宜上分母分子の増税を調べなければならない.