每天5道Java基础编程练习题(五)
你好! 欢迎阅读,今天是第五天,本系列面向Java基础基础学习阶段程序猿,每天5道基础编程,希望能帮你慢慢培养编程思维,走进编程的世界(高手勿喷)
大量的注释让你更正确快速的阅读代码。
废话不多说,让我们直接进入正题
第一题
给一个不多于5位的数,要求:
1.求它是几位数
2.逆序打印出各位数字
public static void demandNumberLength1(){
System.out.println("输入一个数(不超过5位):");
int num=new Scanner(System.in).nextInt();
int count=0;//计数
do {
System.out.println(num%10);//输出个位
num=num/10;//去掉个位
count++;//个数加一
} while (num!=0);//判断它是否为0,确定是否还有位数
System.out.println("它是"+count+"位数");
}
第二题
一个5位数,判断它是不是回文数。
即12321是回文数,个位和万位相同,十位与千位相同
public static void returnNumber(){
System.out.println("输入一个数字(至少3位):");
String s= new Scanner(System.in).next();//用String类型接收,方便处理
char[] ch=s.toCharArray();//转为字符数组
int i;//
//循环遍历,长度为数组的一半,
//如果为偶数,结果为一半
//如果为奇数,长度为一半减一(int/int=int)
for (i = 0; i < ch.length/2; i++) {
//判断第一位和最后一位是否相等
if(ch[i]==ch[ch.length-i-1]){
//如果相等,不做处理,只用i来计数
}else{
//如果不相等,退出循环,此时i的值不为ch.length/2
break;
}
}
//如果 i==ch.length/2 表示,循环正常结束,这个数是回文数
if(i==ch.length/2){
System.out.println("是");
}else{
System.out.println("否");
}
}
第三题
请输入星期几的第一个字母判断是星期几,
如果第一个字母一样,则继续判断下一个字母
public static void opinionWeekDay(){
while(true){//死循环,也可以做菜单方法
System.out.println("-------------------");
System.out.println("退出程序—————n");
System.out.println("请输入星期几的第一个字母:");
String letter= new Scanner(System.in).next();
//输入转为大写
letter=letter.toUpperCase();
switch (letter) {
case "M":
System.out.println("周一");
break;
case "W":
System.out.println("周三");
break;
case "F":
System.out.println("周五");
break;
case "T":
System.out.println("请输入第二个字母:");
String letter1= new Scanner(System.in).next();
//输入转大写
letter1=letter1.toUpperCase();
if(letter1.equals("U")){
System.out.println("周二");
}else{
System.out.println("周三");
}
break;
case "S":
System.out.println("请输入第二个字母:");
String letter2= new Scanner(System.in).next();
//输入转大写
letter2=letter2.toUpperCase();
if(letter2.equals("A")){
System.out.println("周六");
}else{
System.out.println("周日");
}
break;
case "N":
System.out.println("谢谢使用!");
System.exit(0);
break;
default:
//不在其中的字母给提示,增加用户体验
System.out.println("请输入正确的字母!");
break;
}
}
}
第四题
求100以内的素数
public static void primeNumber(){
int count=0;//计数
for(int i=100;i>1;i--){//遍历1~100的数
for(int j=i-1;j>0;j--){//从i-1开始,逆序判断
if(j==1){//如果j循环到1,说明没有退出循环
//此时的i为素数
System.out.print(i+"\t");
count++;//技术
if(count%5==0){//每5个换行
System.out.println();
}
}
if(i%j==0){//不是素数,退出循环,j不可能为0
break;
}
}
}
}
第五题
对10个数进行排序
public static void tenNumberSort(){
int[] num=new int[10];//定义一个长度为10的数组
for (int i = 0; i < num.length; i++) {//循环输入
System.out.println("请输入第"+(i+1)+"个数:");
//将输入的数存入数组,下标自动增加
num[i]=new Scanner(System.in).nextInt();
}
int middle=0;//中间变量
//冒泡排序
/*外层循环 i < num.length-1,是因为倒数第二次比较第一位和
*第二位之后,已经排序完成,不用在比较第一位*/
for (int i = 0; i < num.length-1; i++) {//控制循环次数
/*
*j < num.length-1-i
*这个地方减一是因为判断条件中有j+1,防止数组下标越界异常
*-i是因为每次比较之后,最后的i位一定是排好序的,不用再比较
*/
for (int j = 0; j < num.length-1-i; j++) {
if(num[j]>num[j+1]){//将大的数赋给j+1
//交换
middle=num[j];
num[j]=num[j+1];
num[j+1]=middle;
}
}
}
//遍历输出
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
}
能坚持到今天,你已经很优秀了,高手就是比你身边的人更努力一点,比同行多敲几遍
学习要循序渐进,思维慢慢培养,如果遇到程序异常要耐心检查,大多数都是语法错误,比如该大写没有大写,该加分号的没有分号,改写分号的写了其他符号。
耐心检查,你一定会成功!!
第五天,加油!!