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();
}
}