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);
}}