switch试题:输入一个整数,根据这个数的位数输出下面的内容

switch试题:输入一个整数,根据这个数的位数输出下面的内容

当位数=1、4时,输出这个数的平方

当位数>=8时,输出这个数低四位所组成数字的逆数

当位数=5、6时,输出这个数高四位的内容

其它情况输出这个数各个位数上数字的和


public class HelloWorld {
    public static void main(String []args) {
        int value = 12345678;// 输入值
        String str = String.valueOf(value);// 转为字符串
        int len = str.length();// 长度
        switch(len) {
            case 1:
            case 4:
                System.out.println(value*value);//平方
            break;
            case 2:
            case 3:
            case 7:
                int sum=0;
                for(int i=0;i<len;i++) {
                   String num = str.substring(i,i+1);
                   sum+=Integer.valueOf(num);
                }
                System.out.println(sum);// 和
            break;
            case 5:
            case 6:
                System.out.println(str.substring(len-4,len));// 高四位
            break;
            default:
                String low = str.substring(0,4);
                String reverse = "";
                for(int i=4;i>0;i--) {
                   reverse+=low.substring(i-1,i);
                }
                System.out.println(reverse);// 低四位逆数
                break;
                
        }
    }
}

        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        String n1 = String.valueOf(n);
        int k = n1.length();
        int c;int m=0;
        if (k==1 || k==4) {
            c=1;
        }else if (k==5 || k==6) {
            c=2;
        }else if (k>=8) {
            c=3;
        }else {
            c=4;
            for (int i = 0; i < k; i++) {
                m += (int) n1.charAt(i);
            }
        }
        switch (c) {
            case 1:
                System.out.println((int) Math.pow(n,2));
                break;
            case 2:
                System.out.println(n1.substring(k-4));
                break;
            case 3:
                System.out.println();
                break;
            case 4:
                System.out.println(m);
                break;
        }

case 3没写。逆数是什么?我没听过?

import java.util.Scanner;
import java.util.ArrayList;
import java.lang.Integer;
public class Main {

public static int Bits(int number) {
    int n = 0;
    while (number > 0) {
        number = number / 10;
        n++;
    }
    return n;
}
public static void case1_4(int number)
{
    System.out.println(number*number);
}

public static void case5_6(int number)
{
    ArrayList<Integer> array = new ArrayList<>();
    while(number>0)
    {
        array.add(number%10);
        number=number/10;
    }
    for (int i=7;i>3;i--)
        System.out.println(array.get(i));
}
public static void case237(int number)
{
    ArrayList<Integer> array = new ArrayList<>();
    while(number>0)
    {
        array.add(number%10);
        number=number/10;
    }
    int sum=0;
    for (int i=0;i< array.size();i++)
        sum+=array.get(i);
    System.out.println(sum);
}
public static void other_case(int number)
{
    int []array = new int[4];
    for (int i=0;i<4;i++)
    {
        array[3-i]=number%10;
        number/=10;
    }
    for (int i=0;i<4;i++)
        System.out.println(array[i]);
}
public static void test()
{
    int number;
    Scanner input = new Scanner(System.in);
    number=input.nextInt();
    int bits=Bits(number);
    switch (bits)
    {
        case 1:
        case 4:
            case1_4(number);
            break;
        case 5:
        case 6:
            case5_6(number);
            break;
        case 2:
        case 3:
        case 7:
            case237(number);
            break;
        default:
            other_case(number);
            break;
    }

}
public static void main(String[] args) {
// write your code here
    test();
}

}