zoukankan      html  css  js  c++  java
  • 蓝桥杯 2016年 第七届 四平方和(JAVA)

    蓝桥杯 2016年 第七届 四平方和(JAVA)

    • 小技巧

      判断一个double类型的值a是否为整数,可以使用如下方法

      if((a%1)<Double.MIN_VALUE){ //... }
      
    • 基础暴力解法

      package provincial_2016B;
      
      import java.util.Scanner;
      
      public class Eight {
      	public static void main(String[] args) {
      		Scanner scan = new Scanner(System.in);
      		int n=scan.nextInt();
      		for(int i=0;i*i<=n;i++){
      			for(int j=i;i*i+j*j<=n;j++){
      				for(int k=j;i*i+j*j+k*k<=n;k++){
      					int temp=n-i*i-j*j-k*k;
      					double l=Math.sqrt(temp);
      					if(l%1<Double.MIN_VALUE){
      						System.out.println(i+" "+j+" "+k+" "+(int)l);
      						return;
      					}
      				}
      			}
      		}
      	}
      }
      
      
    • 在此基础上进行优化

      package provincial_2016B;
      
      import java.util.HashMap;
      import java.util.Scanner;
      
      public class Eight {
      	private static HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>();
      	
      	public static void main(String[] args) {
      		Scanner scan = new Scanner(System.in);
      		int n=scan.nextInt();
      		for(int c=0;c*c<=n;c++){
      			for(int d=c;c*c+d*d<=n;d++){
      				hm.put(c*c+d*d, c);
      			}
      		}
      		for(int a=0;a*a<=n;a++){
      			for(int b=a;a*a+b*b<=n;b++){
      				int temp=n-a*a-b*b;
      				if(hm.containsKey(temp)){
      					int c=hm.get(temp);
      					int d=(int)Math.sqrt(temp-c*c);
      					System.out.println(a+" "+b+" "+c+" "+d);
      					return;
      				}
      			}
      		}
      	}
      }
      
      
  • 相关阅读:
    安卓
    查询
    数据库

    phpcms后台获取当前登录账号的数据的代码:
    phpcms后台批量上传添加图片文章方法详解(一)
    phpcms头部代码详细分析
    网站迁移的方法
    phpcms 修改域名
    外网访问我们配置好的WampServer服务器
  • 原文地址:https://www.cnblogs.com/fromneptune/p/12488706.html
Copyright © 2011-2022 走看看