首页 > 8.31 PDD笔试03:n个1*1,求最多正方形的个数
头像
一直上上签X
发布于 2021-08-31 21:07
+ 关注

8.31 PDD笔试03:n个1*1,求最多正方形的个数

public class pdd03 {
    public static void main(String[] args) {
        int[] dp1 = new int[11];//代表正方形数
        int[] dp2 = new int[11];//代表木棍数
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        if (n==1){
            System.out.println(dp1[1]);
        }
        dp1[1] = 1;
        dp2[1] = 4;
        for (int i = 2; i <= 10; i++) {
            dp2[i] = dp2[i - 1] + 12 + (i * i - (i - 1) * (i - 1)) * 8;
            dp1[i]=(i+2)*(i+2);
        }

        for (int i = 1; i <= 10; i++) {
            if (n == dp2[i]){
                System.out.println(dp1[i]);
                return;
            }
            if (n<dp2[i] && n>dp2[i-1]){
                if (n<dp2[i]-(i * i - (i - 1) * (i - 1)) * 8){
                    System.out.println(dp1[i-1]+(n-dp2[i-1])/3);
                }else {
                    System.out.println(dp1[i-1]+4+(n-dp2[i-1]-12)/2);
                }
                return;
            }
        }
    }
}

全部评论

(2) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐