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");
            }
    
        }
    
    }
  • 相关阅读:
    第三章 熟悉常用的HDFS操作
    爬虫大作业
    数据结构化与保存
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    综合练习,词频统计
    Hadoop综合大作业
    理解MapReduce
    熟悉常用的HBase操作
  • 原文地址:https://www.cnblogs.com/hxer/p/5195643.html
Copyright © 2011-2022 走看看