#10694. 模拟策略第十一题(NOIP2017)

模拟策略第十一题(NOIP2017)

第十一题(NOIP2017)

#include<iostream>
using namespace std;
int main() {
    int n,i,j,x,y,nx,ny;
    int a[40][40];
    for(i=0;i<40;i++)
        for(j=0;j<40;j++)
            a[i][j]=0;
    cin>>n;
    y=0;x=n-1;
    n=2*n-1;
    for(i=1;i<=n*n;i++) {
        a[y][x]=i;
        ny=(y-1+n)%n;
        nx=(x+1)%n;
        if((y==0&&x==n-1) || a[ny][nx]!=0)
            y=y+1;
        else {y=ny;x=nx;}
    }
    for(j=0;j<n;j++)
        cout<<a[0][j]<<" ";
    cout<<endl;
    return 0;
}
  1. 【判断题】11行改为n=(n<<1)-1;程序运行结果不变。 {{ select(1) }}
  • 正确
  • 错误
  1. 【判断题】输出的数字有n(n是最初输入的数值)个。 {{ select(2) }}
  • 正确
  • 错误
  1. 【判断题】将12行的i++改为++i程序运行结果不变。 {{ select(3) }}
  • 正确
  • 错误
  1. 【判断题】将06~08行去掉,程序运行结果不变。 {{ select(4) }}
  • 正确
  • 错误
  1. 【选择题】输入为3时,输出为( )。 {{ select(5) }}
  • 17 24 1 8 15
  • 17 21 3 5 2
  • 1 5 36 7 5
  • 17 2 8 3 1
  1. 【选择题】输入为4时,输出为( )。 {{ select(6) }}
  • 30 39 48 1 10 19 28
  • 24 39 48 1 10 19 28
  • 30 39 48 1 5 19 14
  • 30 39 24 1 10 19 28