求十进制数转换成二进制之后都有第几位(从低往高数,另外定义最低位叫第0位) 是1
题目说了输入不大于1,000,000的十进制数 ->所以不需要用高精度,直接int就能AC
根据直觉写代码就直接AC了
判断数字除2的余数 如果余1,那么第0位就是1,输出'0'
然后数字除以2取整,再判断第1位,以此类推
最高位一定是1,直接输出
难度系数=0
通过率数据:37.96% (5199/13693)
import java.util.*;
public class Main
{
public static int d;
public static int n;
public static int i;
public static int x;
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
d=in.nextInt();
for (i=0;i<d;i++)
{
n=in.nextInt();
x=0;
while (n>1)
{
if ((n%2)==1) System.out.printf("%d ",x);
n/=2;
x++;
}
System.out.printf("%d\n", x);
}
}
}