码迷,mamicode.com
首页 > 编程语言 > 详细

Java练习题

时间:2016-10-10 19:36:11      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

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 }
View Code

 

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 }
View Code

 

Java练习题

标签:

原文地址:http://www.cnblogs.com/longc/p/5946096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!