UVA10161 Ant on a Chessboard

這道題目也是找到規律就不難了。


基本思想:

注意到中間斜對角線數是有規律的。輸入n,再根據n的大小從對角線上的數開始來找。這裏要注意此時對角線上的數橫座標的奇偶性,分兩種情形討論。


//b.cpp
#include<stdio.h>

int main(){
    int n,m,x,y,i;
    while(scanf("%d",&n),n){
          m=1;
          i=1;
          do{
               m=m+2*(i-1);//m表示對角線上的數,i表示m的橫座標
                
               if(n>m&&n<=m+(i-1)){
                    if(i%2==0){
                         x=i;
                         y=i-(n-m);
                      }
                    else{
                         x=i-(n-m);
                         y=i;     
                    }
                    break;
               }
               else if(n<m&&n>=m-(i-1)){
                    if(i%2==0){
                        x=i-(m-n);
                        y=i;
                    }
                    else{
                         x=i;
                         y=i-(m-n);;     
                    } 
                    break;
               }                     
               else if(n==m){
                          x=y=i;
                          break;
               }
                i++;                           
          }while(true);
           printf("%d %d\n",x,y);          
    }
    return 0;    
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章