首页 > 代码库 > hihocoder 1311
hihocoder 1311
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。