一、打印九九乘法表
代码如下(示例):
package com.ljf.ketanlinxi;
public class JF1 {
public static void main(String[] ags){
for (int x = 1;x < 10;x++) {
for (int y = 1;y <= x;y++) //当列数小于行数时,继续打印
System.out.print(y +"*"+ x + "=" + x * y +" ");
System.out.println();
}
}
}
要想打印九九乘法表,思路为:
首先定义两个变量,一个用来标记行数,一个用来标记列数,这就要求使用双重for
循环。
运行测试:
二、求任意输入数据区间的质数(以从键盘输入1到100为例)
代码如下(示例):
package com.ljf.ketanlinxi;
import java.util.Scanner;
public class JF2 {
public static void main(String[] ags) {
System.out.println("此代码可求a~b之间的质数,请输入a和b:");
Scanner number = new Scanner(System.in);
int count = 0; //换行计数用
int a = number.nextInt();
int b = number.nextInt();
for (int i = a; i <= b; i++) {
boolean flag = true; //内层循环判断i是否为质数
for (int j = 2; j < i; j++) {
if (i % j == 0) { //除了1和它本身以外,如果i可以整除其他数就flag = false
flag = false;
break;
}
}
if(flag) {
count++;
System.out.print(i + "\t");
if (count % 10 == 0) {
System.out.println(); //每当输出10个数时,就换行输出
}
}
}
System.out.println();
System.out.println("质数的总个数为:" + count);
}
}
运行测试:
三、求任意输入数据区间的水仙花数(以从键盘输入100到999为例)
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
代码如下(示例):
package com.ljf.ketanlinxi;
import java.util.Scanner; //引入创建扫描器的包
public class JF3 {
public static void main(String[] ags) {
System.out.println("此代码可求a~b之间的水仙花数,请输入a和b:");
Scanner number = new Scanner(System.in); //创建扫描器
int gei,shi,bai;
int count = 0; //计数用
int a = number.nextInt();
int b = number.nextInt();
for(int i = a;i < b;i++){
gei = i%10; //取出个位
shi = i/10%10; //取出十位
bai = i/100; //取出百位
if(i == gei*gei*gei + shi*shi*shi + bai*bai*bai){
count ++; //每当打印出一个水仙花,累加器自动加一
System.out.print(i + " ");
}
}
System.out.println("水仙花个数为:" + count);
}
}
运行测试:
四、求任意数的阶乘,其中对负数和0需要有特殊处理
代码如下(示例):
package com.ljf.ketanlinxi;
import java.util.Scanner; //引入创建扫描器的包
public class JF4 {
public static void main(String[] ags){
System.out.println("请输入需求阶乘的n值:");
Scanner number = new Scanner(System.in); //创建扫描器
int n = number.nextInt();
int w = 1;
if(n < 0){
System.out.println("负数没有阶乘,请结束此次运行,重新计算需求阶乘的n值!");
}else {
if (n == 0) {
System.out.println(n + "的阶乘为" + 1);
}else{
for(int i = 1;i <= n;i++)
w = w * i;
System.out.println(n + "的阶乘为" + w);
}
}
}
}
五、输入一个秒数,转化成**时**分**秒形式输出
代码如下(示例):
package com.ljf.ketanlinxi;
import java.util.Scanner; //引入创建扫描器的包
public class JF5 {
public static void main(String[] args) {
System.out.println("请输入一个数字秒数:");
Scanner scan = new Scanner(System.in); //创建一个扫描器
int num;
int hour = 0; //小时
int minute = 0; //分钟
int seconds = 0; //秒
num = scan.nextInt();
seconds = num % 60;
num -= seconds;
if (num > 0) { //若已减完,即num=0,则minute和hour都为0
num /= 60;
minute = num % 60;
num -= minute;
if (num > 0) { //若已减完,即num=0,则hour为0
hour = num / 60;
}
}
System.out.printf("%d时%d分%d秒\n", hour, minute, seconds);
}
}
运行测试:
总结
本文仅仅简单介绍五个常见的Java练习题,只能说是提供了一些小小的快速便捷地处理数据的函数和解决问题的方法。等以后学会到了Java中类似C语言中的goto语法,上面求阶乘中对负数的特殊处理,还会完善优化。