下面是我学习过程中收集到的好题,以及我亲手写的解题代码。
有一个不多于5位的正整数,求它是几位数,分别打印出每一位数字。
import java.util.Arrays;
public class PrintNum_T11 {
public static void main(String[] args) {
PrintNum_T11 pT = new PrintNum_T11();
int num = 4213;
String str ="";
int [] IndexArr=new int[5];
if(num>=1) {
IndexArr[0]=num%10;
str +="1位:"+IndexArr[0]+" ";
if(num/10>0) {
IndexArr[1] = num/10%10;
str +="2位:"+IndexArr[1]+" ";
if(num/100>0) {
IndexArr[2]=num/100%10;
str +="3位:"+IndexArr[2]+" ";
if(num/1000>0) {
IndexArr[3]=num/1000%10;
str +="4位:"+IndexArr[3]+" ";
if(num/10000>0) {
IndexArr[4]=num/10000;
str +="5位:"+IndexArr[4];
}
}
}
}
System.out.println("输入数字:"+num);
System.out.println("输出数组"+Arrays.toString(pT.reseveArr(IndexArr)));
System.out.println(str);
}
else {
System.out.println("不能为负数");
}
}
int [] reseveArr(int []arr) {
int temp;
int [] arr1 = new int[arr.length];
for(int i=0;i<arr.length;i++) {
arr1[i] = arr[arr.length-i-1];
}
return arr1;
}
}
编写一个程序,求整数n的阶乘,例如5的阶乘是12345
public class factorial_T15 {
public static void main(String[] args) {
int n = 15;
String str = "";
int sum = 1;
System.out.println("输入整数n为"+n);
for(int i=1;i<=n;i++) {
sum*=i;
if(i==n) {
str+=i+"="+sum;
}
else{
str+=i+"×";
}
}
System.out.println(str);
}
}
编写一个程序,找出大于200的最小的质数
public class findPrime_T16 {
public static void main(String[] args) {
int startNum = 200;
System.out.println("大于"+startNum+"的最小的质数=="+getPrimeNumber(startNum));
}
public static int getPrimeNumber(int startNum){
int maxNum=0 ;
int i=startNum-1;
outor:while(true) {
i++;
for(int j=2;j<Math.sqrt(i);j++) {
if(i%j==0) {
continue outor;
}
}
maxNum = i;
break;
}
return maxNum;
}
}
由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321
import java.util.Scanner;
public class FourInt_T17 {
public static void main(String[] args) {
System.out.println("请输入需要翻转的数(范围1000~9999):");
Scanner scanner = new Scanner(System.in);
int opNum =scanner.nextInt();
if(opNum>999 &&opNum<10000) {
int gewei = opNum%10;
int shiwei = opNum/10%10;
int baiwei = opNum/100%10;
int qianwei = opNum/1000%10;
System.out.println("翻转后得到的数:");
System.out.println(gewei*1000+shiwei*100+baiwei*10+qianwei);
}
else {
System.out.println("范围超过1000~9999");
}
}
}