【Java SE】循环一些基本练习

avatar
作者
猴君
阅读量:3

判定一个数字是否是素数

public class Test {     public static int is_sushu(int n) {         if(n == 1) {             return 0;         }         int i ;         for (i = 2; i <= Math.sqrt(n); i++) {             if(n % i == 0 ) {                break;             }         }         if (i > n) {             return 1;         }         return 0;     }     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int ret = is_sushu(n);         if(ret == 1 ) {             System.out.println(n + "是素数");         } else {             System.out.println(n + "不是素数");         }     } }

  输出 1000 - 2000 之间所有的闰年

public class Test {     public static void main(String[] args) {         int year ;         for ( year = 1000; year <= 2000 ; year++) {             if(year % 4 ==0 && year % 100 !=0 || year % 400 == 0 )             {                 System.out.println(year + "是闰年");             }         }     } } 

 输出乘法口诀表

public class Test {     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();         }     } }

 求两个正整数的最大公约数

public class Test {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int a = scanner.nextInt();         int b = scanner.nextInt();         if(b > a) {             int tmp = b;             b = a;             a = b;         }         int c =a % b;         while(c != 0) {             a = b;             b = c;             c = a % b;         }         System.out.println(b);     } }

 求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数
本身,如: 153=1^3+5^3+3^3 ,则153是一个“水仙花数”。)

public class Test {     public static void main(String[] args) {         int i;         for (i = 100; i < 1000 ; i++) {             int k = i;             int sum = 0;             while(k != 0) {                 sum+=Math.pow(k%10,3);                 k /= 10;             }             if (sum == i) {                 System.out.println(i);             }         }     } }

 写一个函数返回参数二进制中 1 的个数
比如: 15 0000 1111 4 个 1

import java.util.Scanner; public class Test {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int count = 0;         /*for (int i = 0; i < 32; i++) {             if ((n >> i & 1) == 1) {                 count++;             }         }*/         while (n != 0) {             count++;             n = n & (n-1);         }         System.out.println(count);     } }

 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。

import java.util.Scanner; public class Test {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int i;         // 00000000 00000000 00000000 00001010         // 00000000 00000000 00000000 00000001         // 00000000 00000011         // 00000000 00000000         System.out.print("偶数位:");         for ( i = 31; i > 0; i-=2) {             if((n >> i & 1) == 1) {                 System.out.print(1 + " ");             } else {                 System.out.print(0 + " ");             }         }         System.out.println("");         System.out.print("奇数位:");         for ( i = 30; i >= 0; i-=2) {             if((n >> i & 1) == 1) {                 System.out.print(1 + " ");             } else {                 System.out.print(0 + " ");             }         }     } }

 

 猜数字游戏

import java.util.Random; import java.util.Scanner;  public class Test {     public static void main(String[] args) {         //获取随机数         Random random = new Random();         Scanner scanner = new Scanner(System.in);         int n = random.nextInt(100);// [0,100)         int count =  3;         while (count != 0) {             System.out.println("输入你的数字");             int ret = scanner.nextInt();             if(ret > n) {                 System.out.println("猜大了");             } else if(ret < n) {                 System.out.println("猜小了");             } else {                 System.out.println("恭喜你猜对了");                 break;             }             count--;             if(count == 0) {                 System.out.println("你没有机会了");                 break;             }             System.out.println("你还有" + count + "机会");         }     } }

 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!