小S的坐标系菱形统计

170 阅读1分钟

问题描述

小S正在研究坐标系中的几何图形,特别是菱形。现在给定一个X轴和Y轴的范围,他希望统计在坐标系内满足以下三个条件的菱形的总数:

  1. 菱形具有正面积。
  2. 菱形的每个顶点的横坐标xi和纵坐标yi​都是整数,且满足0≤xi≤X0≤xi​≤X 和 0≤yi≤Y0≤yi​≤Y。
  3. 菱形的对角线平行于坐标轴。

你需要帮助小S计算出满足这些条件的菱形的总数。


测试样例

样例1:

输入:x = 2 ,y = 2
输出:1

样例2:

输入:x = 3 ,y = 3
输出:4

样例3:

输入:x = 4 ,y = 2
输出:4

根据题目的条件 “菱形的对角线平行于坐标轴而且每个顶点的横坐标xi和纵坐标yi​都是整数” 这段话,完美可以确定和y周平行的对角线的x轴的坐标(两个的横坐标是相等的)的所有取值和y轴上所有纵坐标的取值,分别用xr和yr记录。然后将他们相乘就是结果了


public class Main {
    public static int solution(int x, int y) {

        int xr=0,yr=0,i;
        for( i=2;i<=x;i+=2){
            xr+=x-i+1;
        }
        for(i=2;i<=y;i+=2){
            yr+=y-i+1;
        }

        return xr*yr;
    }

    public static void main(String[] args) {
        System.out.println(solution(2, 2) == 1);
        System.out.println(solution(3, 3) == 4);
        System.out.println(solution(4, 2) == 4);
    }
}