码迷,mamicode.com
首页 > 其他好文 > 详细

hihocoder 1311

时间:2017-08-05 09:51:43      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:logs   bre   false   tar   .com   targe   blank   ann   ble   

http://hihocoder.com/problemset/problem/1311

这个题目模拟一下即可

我们都知道,小数转换2进制的办法就是对于小数部分不断乘2然后每一位取整数部分

那么这个题目也就是转换成,它是否可以通过乘以2,取整最后变成全都是0

用c的话,模拟一下乘法便可,所以这个用java要稍微方便些,用bigdecimal

 1 import java.math.BigDecimal;
 2 import java.util.Scanner;
 3 
 4 public class Main{
 5     public static void main(String[] args) {
 6         Scanner cin = new Scanner(System.in); 
 7         BigDecimal a,b;
 8         int cnt;
 9         cnt = cin.nextInt();
10         while((cnt--)>0){
11             String ans ="0.";
12             a = cin.nextBigDecimal();
13             boolean flag = true;
14             for(int i = 0;i<200;i++){
15                 a = a.multiply(BigDecimal.valueOf(2));
16                 if(a.compareTo(BigDecimal.ONE)>=0){
17                     a=a.subtract(BigDecimal.ONE);
18                     ans+="1";
19                 }else 
20                     ans+="0";
21                 if(a.compareTo(BigDecimal.ZERO)==0)
22                     break;
23                 //System.out.println(a);
24                 if(i==199)
25                     flag = false;
26             }
27             if(flag)
28                 System.out.println(ans);
29             else 
30                 System.out.println("NO");
31                 
32         }
33     }
34 }

 

hihocoder 1311

标签:logs   bre   false   tar   .com   targe   blank   ann   ble   

原文地址:http://www.cnblogs.com/Tree-dream/p/7288962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!