HDOJ 2153-仙人球的殘影
阿新 • • 發佈:2019-01-28
仙人球的殘影
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6758 Accepted Submission(s): 3131Problem Description 在美麗的HDU,有一名大三的同學,他的速度是眾所周知的,跑100米僅僅用了2秒47,在他跑步過程中會留下殘影的哎,大家很想知道他是誰了吧,他叫仙人球,既然名字這樣了,於是他的思想是單一的,他總是喜歡從一點出發,經過3次轉折(每次向右轉90°),回到出發點,而且呢,他每次轉折前總是跑相同長度的路程,所以很多人都想知道如果用‘1’算他跑步出發的第一個殘影的話,那麼回到起點的時候,他的殘影是怎麼樣的呢?
Input 測試資料有多行,每一行為一個數N(1<=N<=10)(以0結尾,0不做處理),即仙人球在沒有回到起點的時候,跑過留下N個殘影后突然90°右轉。
Output 每組測試資料輸出一個結果,並且每個殘影的計數位長度為3個字元長度。(當然N等於1的話,它的結果也是佔用3個字元位置的)
Sample Input 4
Sample Output 1 2 3 4 12 5 11 6 10 9 8 7
Author Guner
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { int n; while(scanf("%d",&n)!=EOF&&n) { if(n==1) { printf("%3d\n",n); continue; } int s; int i; int end=n+n+(n-2)*2; for(i=1;i<=n;i++) { printf("%3d",i); } printf("\n"); s=i; for(int j=1;j<=n-2;j++) { printf("%3d",end); for(int k=0;k<n-2;k++) { printf(" "); } printf("%3d",s); end--; s++; printf("\n"); } for(int o=end;o>=s;o--) { printf("%3d",o); } printf("\n"); } return 0; }