HDU2135 Rolling table【水题】

来源:互联网 发布:动漫周边网店淘宝 编辑:程序博客网 时间:2024/06/02 04:56
Rolling table

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2024    Accepted Submission(s): 977

Problem Description
After the 32nd ACM/ICPC regional contest, Wiskey is beginning to prepare for CET-6. He has an English words table and read it every morning.
One day, Wiskey's chum wants to play a joke on him. He rolling the table, and tell Wiskey how many time he rotated. Rotate 90 degrees clockwise or count-clockwise each time.
The table has n*n grids. Your task is tell Wiskey the final status of the table.
 
Input
Each line will contain two number.
The first is postive integer n (0 < n <= 10).
The seconed is signed 32-bit integer m.
if m is postive, it represent rotate clockwise m times, else it represent rotate count-clockwise -m times.
Following n lines. Every line contain n characters.
 
Output
Output the n*n grids of the final status.
 
Sample Input
3 2
123
456
789
3 -1
123
456
789
 
Sample Output
987
654
321
369
258
147
 
Author
Wiskey
 
Source

HDU 2007-11 Programming Contest_WarmUp


题目大意:给你一个N*N的字符矩阵,再给一个翻转次数M,翻转一次为90°,M为正

表示顺时针翻转,M为负表示逆时针旋转。

思路:将M对4取余,总共分四种情况,根据翻转情况输出相应结果。


#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;char s[12][12];int main(){    int M,N;    while(cin >> N >> M)    {        getchar();        memset(s,0,sizeof(s));        for(int i = 0; i < N; ++i)            cin >> s[i];        if(M%4==1 || M%4==-3)        {            for(int j = 0; j < N; ++j)            {                for(int i = N-1; i >= 0; --i)                    cout << s[i][j];                cout << endl;            }        }        else if(M%4 == 2 || M%4==-2)        {            for(int i = N-1; i >= 0; --i)            {                for(int j = N-1; j >= 0; --j)                    cout << s[i][j];                cout << endl;            }        }        else if(M%4 == 3 || M%4==-1)        {            for(int j = N-1; j >= 0; --j)            {                for(int i = 0; i < N; ++i)                    cout << s[i][j];                cout << endl;            }        }        else        {            for(int i = 0; i < N; ++i)            {                for(int j = 0; j < N; ++j)                    cout << s[i][j];                cout << endl;            }        }    }    return 0;}


0 0
原创粉丝点击