zoukankan      html  css  js  c++  java
  • 模拟(1)

    今天看了下模拟的题。模拟就是给你一个目标让你(建立数学模型)通过代码去实现它。

    感觉大部分都还比较简单。

    做模拟啊,读题很重要,主要是分析题目的要求。

    http://bailian.openjudge.cn/practice/3750/

    啊,就比如说这道题(当然我没做),能体会到阅读理解的绝望吗

    正常(简单)一点的模拟:

    http://www.fjutacm.com/Problem.jsp?pid=1861

    其实就是给你条件,写出相应的代码,没了。

    神奇的幻方也算是模拟(就拿一道才做的题):

    幻方是一个很神奇的 N×N 矩阵,它的每行、每列与对角线,加起来的数字和都是相同的。我们可以通过以下方法构建一个幻方。(阶数为奇数)

    1. 第一个数字写在第一行的中间

    2. 下一个数字,都写在上一个数字的右上方:

      • 如果该数字在第一行,则下一个数字写在最后一行,列数为该数字的右一列
      • 如果该数字在最后一列,则下一个数字写在第一列,行数为该数字的上一行
      • 如果该数字在右上角,或者该数字的右上方已有数字,则下一个数字写在该数字的下方

    输入格式

    一个数字 NN(N20N≤20)。

    输出格式

    按上方法构造的 (2N1)×(2N1)(2N−1)×(2N−1) 的幻方。

    好像没什么需要动脑子的地方?代码如下:

    #include<stdio.h>
    #include<math.h>
    int n,a[40][40],x,y;
    int main(){
        scanf("%d",&n);
        int m=2*n-1;
        x=1,y=(m+1)/2;
        for(int i=1;i<=m*m;i++){
            a[x][y]=i;
            if(!a[(x-2+m)%m+1][y%m+1])
            x=(x-2+m)%m+1,y=y%m+1;
            else x=x%m+1;
        }
        for(int i=1;i<=m;i++){
            for(int j=1;j<=m;j++){
                printf("%d ",a[i][j]);
            }
            printf("
    ");
        }
        return 0;
    } 

    大概就是这样,还有其他类型的题做了再补充。

  • 相关阅读:
    Delphi公用函数单元
    Delphi XE5 for Android (十一)
    Delphi XE5 for Android (十)
    Delphi XE5 for Android (九)
    Delphi XE5 for Android (八)
    Delphi XE5 for Android (七)
    Delphi XE5 for Android (五)
    Delphi XE5 for Android (四)
    Delphi XE5 for Android (三)
    Delphi XE5 for Android (二)
  • 原文地址:https://www.cnblogs.com/Untergehen/p/14299217.html
Copyright © 2011-2022 走看看