24h購物| | PChome| 登入
2012-08-24 09:03:12| 人氣1,748| 回應0 | 上一篇 | 下一篇

[ZJ][Math] a348. 1. 貪食蛇

推薦 0 收藏 0 轉貼0 訂閱站台

內容 :

問題敘述

貪食蛇遊戲中,若貪食蛇不被玩家控制蛇行方向時,其預設行進方向如下圖

 

 

一開始貪食蛇的頭在 (1,1) 這個位置,第二秒跑到 (1,2),接著 (2,2)(2,1)(3,1)(3,2),到第十秒時貪食蛇的頭在 (1,4) 位置上,以此類推。請寫一個程式,計算貪食蛇依照上述行進模式的位置。

 

輸入說明 :

輸入包含了l+1 (1 ≤ l ≤ 50),前l列中每一列有一個正整數Ni (1 ≤ Ni ≤ 2×109),代表l個貪食蛇行進的秒數,最後一列以0代表輸入結束。

輸出說明 :

對於輸入的每一個秒數,請輸出二個正整數,分別代表此時間點貪食蛇頭位置的橫座標與縱座標。

範例輸入 :

輸入範例一
8
20
25
0


輸入範例二
1
0

範例輸出 :

輸出範例一
2 3
5 4
1 5


輸出範例二
1 1

提示 :

出處 :

100三重考區資訊學科能力競賽 (管理:pcshic)

奇偶數分開討論即可

#include <stdio.h>
int main() {
    int m, i;
    while(scanf("%d", &m) == 1 && m) {
        for(i = 0; ; i++)
            if(i*i >= m)
                break;
        int n = i-1;
        if(n&1) {
            if(m - n*n <= n+1)
                printf("%d %d\n", m - n*n, n+1);
            else
                printf("%d %d\n", n+1, 2*n + 2 - m + n*n);
        } else {
            if(m - n*n <= n+1)
                printf("%d %d\n", n+1, m - n*n);
            else
                printf("%d %d\n", 2*n + 2 - m + n*n, n+1);
        }
    }
    return 0;
}

台長: Morris
人氣(1,748) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: 資訊競賽 |
此分類下一篇:[ZJ][模擬水] a349. 2. 指令解譯器
此分類上一篇:[ZJ][BIT] a484. 美麗風景遞增之路

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文