java平面内有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);

}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值