题目:整除序列
语言:java
语法错误:import java.util.*;//标准示例,不能写成 import.java.util.*;
对于Long类型的整数数据类型,利用Scanner接收数据时,需要使用sc.nextLong()接收。Long n=sc.nextLong();
逻辑:本题的难度在于把每次整除后的数字放在一行上,逻辑就是在没满足条件前一直循环。在java里面使用System.out.print();实现
代码展示:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
Long x=sc.nextLong();
while(x>0){
System.out.print(x+" ");
x=x>>1; //x=x/2;也可以
}
}
}
收获:1.java里面整数变量类型的范围:
byte:8位,-2^7~2^7-1 范围:-128-127
short:16位 同理 范围:-32768-32767(10^5)
int:32位 同理 范围:-2147483648-2147483647(10^10)
Long:64位 同理 范围:-9223372036854775808L-9223372036854775807L(10^19)
2.java里面的位移运算符:
>>1:相当于带符号除以2
<<1:相当于带符号乘以2