文章目录
1.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
public static void main(String[] args) {
int n = 9;
for(int i = 31;i >= 1;i -= 2){
System.out.print((n>>>i)&1);
}
System.out.println();
for(int i = 30;i>=0;i -=2){
System.out.print((n>>>i)&1);
}
}
2.写一个函数返回参数二进制中 1 的个数
以下给出三个方法:分别记作main1、main2、main3
public static void main1(String[] args) {
int n = 9;
int count = 0;
while(n!=0){
count++;
n = n & (n-1);
}
System.out.println(count);
}
public static void main2(String[] args) {
int n = 9;
int count = 0;
while(n != 0){
if((n&1) != 0){
count++;
}
n = n>>>1;
}
System.out.println(count);
}
public static void main3(String[] args) {
int n = 9;
int count = 0;
for(int i = 0 ;i < 32;i++){
if(((n >>> i) &1) != 0){
count ++;
}
}
System.out.println(count);
}
3.求出0~999999之间的所有的自幂数
自幂数:如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数。
例如:在十进制中,153是一个三位数,各个数位的3次幂之和为(13)+(53)+3^3=153,所以153是十进制中的自幂数。)
public static void main(String[] args) {
for(int i = 0;i < 999999;i++){
int tmp = i;
int count = 0;//计算当前的数字有多少位
while(tmp != 0){
count++;
tmp = tmp/10;
}
tmp = i;
int sum = 0;
while(tmp != 0){
sum += Math.pow(tmp%10,count);
tmp /= 10;
}
if(sum == i){
System.out.println(i);
}
}
}
4.求两个正整数的最大公约数
public static void main(String[] args) {
int a = 16;
int b = 24;
int c = a%b;
while(c!=0){
a = b;
b = c;
c = a % b;
}
System.out.println(b);
}
5.输出乘法口诀表
public static void main(String[] args) {
for(int i = 1;i <= 9;i++){
for(int j = 1;j <= i;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
6.输出 1000 - 2000 之间所有的闰年
public static void main(String[] args) {
for (int i = 1000; i <= 2000; i++) {
if(i % 400 == 0||i % 4 == 0 && i % 100 != 0){
System.out.println(i);
}
}
}
7.打印 1 - 100 之间所有的素数
public static void main(String[] args) {
for (int n = 1; n < 101; n++) {
int i = 2;
for (; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
break;
}
}
if (i > Math.sqrt(n)) {
System.out.println(n + "是素数");
}
}
}
8.判定一个数字是否是素数
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
int i = 2;
for (; i <= Math.sqrt(num); i++) {
if(num % i == 0) {
System.out.println(num+"不是素数");
break;
}
}
if(i == Math.sqrt(num)) {
System.out.println("num是素数");
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
int i = 2;
for (; i <= num/2; i++) {
if(num % i == 0) {
System.out.println(num+"不是素数");
break;
}
}
if(i == num/2) {
System.out.println("num是素数");
}
}
9.猜数字游戏
public static void main(String[] args) {
Random random = new Random();
Scanner scanner = new Scanner(System.in);
int Guess = random.nextInt(100);
while(true){
System.out.println("请输入你要猜的数字:");
int num = scanner.nextInt();
if(num < Guess){
System.out.println("猜小了");
}else if(num > Guess){
System.out.println("猜大了");
}else {
System.out.println("猜对了");
break;
}
}
scanner.close();//关闭循环
}