• HDU 2135 Rolling table


    http://acm.hdu.edu.cn/showproblem.php?pid=2135

    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
     
    代码:
    #include <bits/stdc++.h>
    using namespace std;
    
    int N, M;
    char mp[15][15];
    
    int main() {
        while(~scanf("%d%d", &N, &M)) {
            int flag;
            if(M > 0) flag = 1;
            else flag = 0;
            memset(mp, 0, sizeof(mp));
            for(int i = 1; i <= N; i ++) {
                getchar();
                for(int j = 1; j <= N; j ++)
                    scanf("%c", &mp[i][j]);
            }
    
            if(abs(M) % 4 == 0) {
                for(int i = 1; i <= N; i ++) {
                    for(int j = 1; j <= N; j ++)
                        printf("%c", mp[i][j]);
                    printf("
    ");
                }
            } else {
                if(abs(M) % 4 == 2) {
                    for(int i = N; i >= 1; i --) {
                        for(int j = N; j >= 1; j --)
                            printf("%c", mp[i][j]);
                        printf("
    ");
                    }
                } else if(M > 0 && M % 4 == 1 || M < 0 && abs(M) % 4 == 3) {
                    for(int j = 1; j <= N; j ++) {
                        for(int i = N; i >= 1; i --)
                            printf("%c", mp[i][j]);
                        printf("
    ");
                    }
                } else if(M > 0 && M % 4 == 3 || M < 0 && abs(M) % 4 == 1) {
                    for(int j = N; j >= 1; j --) {
                        for(int i = 1; i <= N; i ++)
                            printf("%c", mp[i][j]);
                        printf("
    ");
                    }
                }
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    LeetCode "Jump Game"
    LeetCode "Pow(x,n)"
    LeetCode "Reverse Linked List II"
    LeetCode "Unique Binary Search Trees II"
    LeetCode "Combination Sum II"
    LeetCode "Divide Two Integers"
    LeetCode "First Missing Positive"
    LeetCode "Clone Graph"
    LeetCode "Decode Ways"
    LeetCode "Combinations"
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9709672.html
Copyright © 2020-2023  润新知