zoukankan      html  css  js  c++  java
  • hdu 5429 Geometric Progression 高精度浮点数(java版本)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5429

    题意:给一段长度不超过100的每个数字(可以是浮点数)的长度不超过1000的序列,问这个序列是否是一个等比数列;

    等比数列以第一个数为首项,并且r != 0,一个坑点

    之前我写的hdu1002的高精度在这里不能用的,因为我的高精度里面还只能是正整数,这时直接使用java的BigDecimal即可;

    ps:特别要注意 1 0这个序列不是等比序列!还有 大数比较是否相等,要使用函数,不能使用==,==是判断两个对象是否是一个对象

     java时间很慢,并且空间很大啊。。343MS 11104K

    import java.math.*;
    import java.util.*;
    
    public class Main {
    
        public static void main(String[] args)throws Exception {
            BigDecimal[] bigDecimals = new BigDecimal[3];
            int n,T;
            Scanner scanner = new Scanner(System.in);
            T = scanner.nextInt();
            while(T-- > 0){
                n = scanner.nextInt();
                boolean flag = true;
                int num = 0;
                for(int i = 1;i <= n;i++){
                    bigDecimals[i%3] = scanner.nextBigDecimal();
                    if(i > 2 && flag){
                        BigDecimal a = bigDecimals[(i-1)%3].multiply(bigDecimals[(i-1)%3]);
                        BigDecimal b = bigDecimals[(i-2)%3].multiply(bigDecimals[i%3]);
                        if(a.compareTo(b) != 0){
                            flag = false;                        
                        }
                    }
                    if(bigDecimals[i%3].compareTo(BigDecimal.valueOf(0)) == 0) num++; 
                    if(num > 0 && num != i)
                        flag = false;
                }
                System.out.println(flag?"Yes":"No");
            }
    
        }
    
    }
  • 相关阅读:
    第三次冲刺
    第二次冲刺
    第一次冲刺
    Beta版本的发布
    第七次冲刺
    SpringMVC+Spring+mybatis 项目实践
    JSP显示新闻
    一个简单的静态邮箱登录界面
    Java Web 基础
    总结
  • 原文地址:https://www.cnblogs.com/hxer/p/5195643.html
Copyright © 2011-2022 走看看