1. 程式人生 > >java有關於M*N矩形求解正方形長方形個數問題

java有關於M*N矩形求解正方形長方形個數問題

我們知道在解決實際問題的時候來,方法有許多,可以運用公式,找規律,還可以自己找到一個合適的解題方法來解決這一類問題:

設有一個n*m方格的棋盤(1≤m,n≤100)。

求出該棋盤中包含多少個正方形、多少個長方形(不包括正方形)。

先有公式得:

經過尋找規律可以得

如圖所示 正方形得個數為2*3+1*2+0*1=8

在如圖所示:

正方形得個數為2*4+1*3+0*2=11

因而得出規律為:

邊長乘積得遞迴求和。

那麼舉行的個數是怎麼個規律來?

這個規律課是小編 找的喲

m*n*(m+1)*(n+1)/4--正方形得個數;

這個大家可以畫圖印證一下;

從而程式碼如下:

import java.util.Scanner; public class Main {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int N = sc.nextInt();             int M = sc.nextInt();             int sumz = 0;             int sumc = 0;                 if (N > M) {                     for (int i = M - 1; i >= 0; i--)          {                             sumz += (N - i) * (M - i);                     }        }          else {                         for (int i = N - 1; i >= 0; i--)              {                                 sumz += (N - i) * (M - i);                         }        }                 sumc = N * M * (N + 1) * (M + 1) / 4 - sumz;             System.out.println(sumz + "," + sumc);

    }}