版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41668547/article/details/86561505
【问题描述】
设有一个n×mn×m方格的棋盘(1≤m,n≤1001≤m,n≤100)。
求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。
例如:当n=2n=2,m=3m=3时
正方形的个数有8个;即
* 边长为1的正方形有6个;
* 边长为2的正方形有2个。
长方形的个数有10个;即
* 2×12×1的长方形有4个;
* 1×21×2的长方形有3个;
* 3×13×1的长方形有2个;
* 3×23×2的长方形有1个。
【输入格式】
一行两个数nn, mm。
【输出格式】
一行两个数,分别为正方形个数和长方形个数。
【样例输入】
2 3
【样例输出】
8 10
【数据规模和约定】
1≤m,n≤1001≤m,n≤100。
===================================================
import java.util.Scanner;
//棋盘
public class Main{
//正方形个数
public static int square(int sum, int length, int l, int h) {
sum = sum + (l-length+1) * (h-length+1);
return sum;
}
//长方形个数
public static int rectangle(int sum, int length, int high, int l, int h) {
sum = sum + (l-length+1) * (h-high+1);
return sum;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();//长
int b = sc.nextInt();//宽
int sum1 = 0;
int sum2 = 0;
for (int i = 1; i <= a; i++) {
for (int j = 1; j <= b; j++) {
if(i == j) {
sum1 = square(sum1, i, a, b);
}
else {
sum2 = rectangle(sum2, i, j, a, b);
}
}
}
System.out.println(sum1+" "+sum2);
}
}