/*
月份
输入月份,对应返回该月份的天数
利用switch的穿透性,可将多个case合到一个代码块
*/
import java.util.Scanner;
class HomeWork5{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入月份:");
int n = sc.nextInt();
switch (n){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30天");
break;
case 2:
System.out.println("28天");
break;
default :
System.out.println("输入错误");
break;
}
}
}
/*
因式分解
将一个正整数进行分解质因数操作 例如: 输入90 结果 2*3*3*5
此为循环实现
*/
import java.util.Scanner;
class HomeWork7{
public static void main(String[] args) {
int num = 0;
boolean flag = true;//标记可分解数字的最小质因数能否分解
boolean primeNumber = true;//标记该数字能否分解
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
num = sc.nextInt();
System.out.println("您输入的整数为: "+ num);
for (int i = 2;i <= num/2;i++ ) {//此处需要带有“=”号,因为:4
if (num % i == 0) {
primeNumber = false;
System.out.print(i + " ");
num = num / i;
i = 1;
flag = true;
/*可分解的数打印展示出来,另一个数继续参与判断确认能否继续分解*/
for (int j = 2;j < num/2;j++){
if(num % j == 0) {
flag = false;
break;
}
}
if (flag){
System.out.print(num + " ");
System.out.println();
}
}
}
/*如果primeNumber为true,则说明该数字为质数*/
if (primeNumber){
System.out.print("该数的质因数只有:" + num);
}
}
}
//质因分解的优化方案,删除好些不必要的语句0420
import java.util.Scanner;
class HomeWork777{
public static void main(String[] args) {
int num = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
num = sc.nextInt();
System.out.println("您输入的整数为: "+ num);
for (int i = 2;i <= num/2;i++ ) {
if (num % i == 0) {
System.out.print(i + " ");
num = num / i;
i = i-1;
}
}
System.out.print(num + " ");
}
}
/*
水仙花
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
*/
class HomeWork10{
public static void main(String[] args){
for(int i = 100;i <= 999; i++){
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100;
int ret = ge*ge*ge + shi*shi*shi + bai*bai*bai;
if (ret == i ) {
System.out.println(i);
}
}
}
}
/*
逆序表示
例如:输入123456返回654312,输入456789,返回987654
此程序目前仅能实现固定位数的逆序输出,后续可以添加多位数预判代码
*/
import java.util.Scanner;
class HomeWork12{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入100000~999999之间整数:");
int num = sc.nextInt();
if (num > 999999 || num < 100000){
System.out.println("输入错误");
} else {
int temp = 1;
int jiecheng = 1;
int newNum = 0;
for(int i = 1;i<=6;i++) {//此处将所计算数字位数值算出来
jiecheng = 1;
for (int j = 1 ;j<=6-i;j++){
jiecheng = jiecheng*10;
}
temp = num % 10;//除10取余数
newNum = newNum + jiecheng * temp; //累加
num = num / 10;//除10,为下一次取余做准备
}
System.out.println(newNum);
}
}
}