• 发水果(猿辅导校招笔试题)


    [编程题]发水果

    时间限制:C/C++ 2秒,其他语言4秒

    空间限制:C/C++ 96M,其他语言192M

    中午是猿辅导水果时间,小猿会给每个同学发水果。猿辅导有一个矩形的办公区域,共有N 排,每排M个工位。平时小猿按照从第一排到最后一排的顺序发水果,某一天小猿突然发现似乎旋转着发水果是一种更有趣的方式,所以决定试试按照逆时针方向螺旋发水果。
    已知每个工位有一个数字,表示该工位员工的工号,每个员工的工号不同。已知小猿从(0, 0)位置开始,按照逆时针螺旋的顺序发水果,请输出收到水果的员工工号序列。

    输入描述:
    第一行 两个数, 数组行列 N,M
    接下来 N 行,每行 M 个正整数,表示每个位置的员工工号
    1 ≤ N ≤ 1000
    1 ≤ M ≤ 1000

    输出描述:
    发放水果工号序列

    输入例子1:
    3 3
    1 2 3 
    4 5 6 
    7 8 9

    输出例子1:
    1 4 7 8 9 6 3 2 5
    思路:此题就是按照逆时针正方形形状由外至内来输出正方形边上的员工工号序列。
     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 const int N = 1010;
     6 
     7 int n, m ,a[N][N];
     8 
     9 
    10 int main(){
    11     cin >> n >> m;
    12 
    13     int mm = m , nn = n;
    14 
    15     for(int i = 0 ; i < n ; i ++)
    16         for(int j = 0 ; j < m ; j ++) scanf("%d",&a[i][j]);
    17 
    18     int sum = n * m;
    19     int i = 0 , j = 0;
    20     while(sum){
    21         for(; i < nn ; i ++){
    22             printf("%d ",a[i][j]);
    23             sum --;
    24             if(sum == 0) return 0;
    25         }
    26         i --;
    27         j ++;
    28 
    29         for(; j < mm ; j ++){
    30             printf("%d ",a[i][j]);
    31             sum --;
    32             if(sum == 0) return 0;
    33         }
    34         j --;
    35         i --;
    36 
    37         for(; i >= n - nn ; i --){
    38             printf("%d ",a[i][j]);
    39             sum --;
    40             if(sum == 0) return 0;
    41         }
    42         i ++;
    43         j --;
    44 
    45         for(; j > m - mm ; j --){
    46             printf("%d ",a[i][j]);
    47             sum --;
    48             if(sum == 0) return 0;
    49         }
    50         j ++;
    51         i ++;
    52         mm --;
    53         nn --;
    54     }
    55     return 0;
    56 }
    View Code
     
  • 相关阅读:
    SQL Server 2012提供的OFFSET/FETCH NEXT与Row_Number()对比测试
    sql 知识点
    javascript基础拾遗——词法作用域
    Linux 软件包管理
    涉略spring
    WebReBuild年会流水记
    javascript面向对象学习笔记(一)——继承
    算法学习——动态规划策略入门
    编程之美读书笔记——2.3寻找水王
    Linux 引导流程解析
  • 原文地址:https://www.cnblogs.com/ZhaoHaoFei/p/12275034.html
Copyright © 2020-2023  润新知