zoukankan      html  css  js  c++  java
  • 面试题:长方形个数计算

    给定一个高度和宽度组成的网格,返回该网络中总共的长方形(不包括正方形)的个数。eg:width=3,height=3。 我们不妨考虑一个3*4的网格。首先我们考虑在什么情况下,出来的是正方形。当长和宽相等时,出来的就是正方形了。撇开正方形不考虑,一个3*4的网格中有多少个1*1不同的格子呢,很简单,就是12个。那有多少个1*2的格子呢?想一下,比如在第一行,应该3个,即4-2+1个,那总共有3*3即9个1*2的方格。同样的道理,应该有多少个2*1的方格呢?答案是(3-2+1)*4,即8个。 继续深入,有多少个2*2的网格呢?根据上面的规律应该是(3-2+1)*(4-2+1),即6个。那我们得到的规律是,对于一个m*n的网格中i*j网格的个数为(m-i+1)*(n-j+1)个。 好了,那就很简单了,得到这题的答案:

    using system;
    using system.collections.generic;
    using system.linq;
    using system.text;
    
    namespace consoleapplication1
    {
        class program
        {
            static void main(string[] args)
            {
                console.writeline(rectanglenum(5, 6));
            }
    
            static int rectanglenum(int m, int n)
            {
                int num = 0;
                for (int i = 0; i < m; i++)
                {
                    for (int j = 0; j < n; j++)
                    {
                        num += i == j ? 0 : (m - i ) * (n - j);
                    }
                }
                return num;
            }
        }
    }
  • 相关阅读:
    ASCII到Unicode到UTF-8
    .NET项目引用黄色小三角以及找不到依赖的解决方法
    MongodbHelper
    SqlHelper分享
    C#_02.16_基础七_.NET表达式&运算符
    C#_02.15_基础六_.NET类
    C#_02.14_基础五_.NET类
    C#_02.13_基础四_.NET方法
    C#_02.13_基础三_.NET类基础
    C#_02.12_基础二_.NET类型存储和变量
  • 原文地址:https://www.cnblogs.com/zhisong/p/4642838.html
Copyright © 2011-2022 走看看