首页 > 代码库 > Java练习题
Java练习题
1、判断101-200之间有多少个素数,并输出所有的素数。
判断素数的方法:用一个数分别除去2到sqrt(这个数),如果能被整除,则说明这个数不是素数,反之则是素数。
1 public class lianxi01 { 2 public static void main(String[] args) { 3 int count = 0; 4 for (int i = 101; i <= 200; i++) { 5 for (int j = 2; j <= i; j++) { 6 if (i % j == 0 && i == j) { 7 count++; 8 System.out.println(i); 9 } else if (i % j == 0 && i != j) {10 break;11 }12 }13 }14 System.out.println("素数个数是:" + count);15 }16 }
2、打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
分析:利用for循环控制100-999个数,每个数分解成百位、十位、个位。
1 public class lianxi02 { 2 public static void main(String[] args) { 3 int i,j=0,k; 4 int bai,shi,ge; 5 for(i=100;i<1000;i++){ 6 bai=i/100; //求百位数 7 shi=(i/10)%10; //求十位数 8 ge=(i%100)%10; //求个位 9 k=bai*bai*bai+shi*shi*shi+ge*ge*ge;10 if(i==k){11 System.out.println(i);12 j++;13 }14 }15 System.out.println("符合条件的水仙花数为:"+j);16 }17 }
3、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
1 package com.clong.test; 2 3 import java.util.Scanner; 4 5 public class lianxi03 { 6 public static void main(String[] args) { 7 for (;;) { 8 Scanner sc = new Scanner(System.in); 9 int a, b;10 int j = 0;11 System.out.println("请输入一个整数:");12 a = sc.nextInt();13 b = a; // 保存原数14 int age[] = new int[10]; // 用来存质因数15 for (int i = 2; a != 1;) {16 if (a % i == 0) {17 age[j] = i;18 j++;19 a = a / i;20 } else {21 i++;22 }23 }24 System.out.print(b + "=");25 for (int i = 0; i < j; i++) {26 System.out.print(age[i]);27 if(i<j-1)//判断是否是最后一位质因数,不是输出*28 System.out.print("*");29 }30 System.out.println();31 }32 }33 }
4、题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1 public class lianxi04 { 2 public static void main(String[] args) { 3 int abcCount = 0; // 英文字母个数 4 int spaceCount = 0; // 空格键个数 5 int numCount = 0; // 数字个数 6 int otherCount = 0; // 其他字符个数 7 Scanner scan = new Scanner(System.in);// 扫描器接受控制台的输入信息 8 System.out.println("输入一组字符"); 9 String str = scan.nextLine(); // 取出控制台的一行信息,也就是你输入的信息10 char[] ch = str.toCharArray(); // 把取道的字符串变成一个char数组11 for (int i = 0; i < ch.length; i++) {12 if (Character.isLetter(ch[i])) { // 判断是否字母13 abcCount++;14 } else if (Character.isDigit(ch[i])) { // 判断是否数字15 numCount++;16 } else if (Character.isSpaceChar(ch[i])) { // 判断是否空格键17 spaceCount++;18 } else { // 以上都不是则认为是其他字符19 otherCount++;20 }21 }22 System.out.println("字母个数:" + abcCount);23 System.out.println("数字个数:" + numCount);24 System.out.println("空格个数:" + spaceCount);25 System.out.println("其他字符个数:" + otherCount);26 }27 }
Java练习题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。