UVa264 Count on Cantor
問題
http://uva.onlinejudge.org/external/2/264.html
概要
AOJ1007 JPEG Compression の劣化版
解法
うまいやり方もあると思うけど、方向で場合分けをして四方向分作り、愚直にプログラムを書けば終わり。
#include <bits/stdc++.h> using namespace std; int main() { int N; while(cin >> N) { int dir = 1; int cnt = 1; int nume = 1, deno = 1; while(1) { if(N == cnt) { break; } if(dir == 1) { deno ++; dir ++; } else if(dir == 2) { nume ++; deno --; // no change dir } else if(dir == 3) { nume ++; dir ++; } else { nume --; deno ++; // no change dir } cnt ++; if(dir == 2 && deno == 1) { dir ++; } else if(dir == 4 && nume == 1) { dir = 1; } } cout << "TERM " << N << " IS " << nume << "/" << deno << endl; } return 0; }