Description
有一个n×m方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。
Input
一行,两个正整数n,m(n≤5000,m≤5000)。
Output
一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)
Sample Input 1
2 3Sample Output 1
8 10
思路分析
长方形包括正方形时
当i=1,
j=1时, 正方形有1个 长方形有1个
j=2时,正方形有1+1个 长方形有1+2个
j=3时,正方形有1+1+1个 长方形有1+2+3个
当i=2时
j=1时, 正方形有1+1+1+1个 长方形有1+2+3+2个
j=2时,正方形有1+1+1+1+2个 长方形有1+2+3+2+4个
j=3时,正方形有1+1+1+1+2+2个 长方形有1+2+3+2+4+6个
由此可见,j 增加1长方形个数增加为 i*j 个
正方形增加数为 i 和 J 之间中最小的数 个
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
int m = cin.nextInt();
long zs = 0,cs = 0;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
{
zs += Math.min(i,j);
cs += i*j;
}
}
System.out.println(zs+" "+(cs-zs));
}
}