21.【程序21】 题目:求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。
思路:用递归的思想。
package com.niit.homework1; import java.util.Scanner; /**
* @author: Annie
* @date:2016年5月21日
* @description:【程序21】
题目:求1+2!+3!+...+20!的和 */
public class FactorialTest {
public static void main(String[] args) {
long sum =1;
Scanner reader = new Scanner(System.in);
System.out.println("请输入要求的阶乘:");
int number = reader.nextInt();
for (int i = 2; i <= number; i++) {
sum +=factorialSum(i);
}
System.out.println("前"+number+"项的阶乘是:"+sum);
}
public static long factorialSum(int number){
long sum =0;
if(number ==1){
return 1;
}else{
return factorialSum(number-1)*number; }
}
}
22.
23.
24.【程序24】
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
package com.niit.homework1; import java.util.Scanner; /**
* @author: Annie
* @date:2016年5月21日
* @description:【程序24】 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 */
public class ReversedOrderNum { /**
* @param args
*/
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("请输入一个不大于5位的正整数:");
int num = reader.nextInt();
reversed(num);
} /**
* @param num
* 判断输入的数字是几位数,以及逆序输出该数字;
*/
private static void reversed(int num) {
String n = String.valueOf(num);
char[] arr = n.toCharArray();
int length = arr.length;
if(length>5){
System.out.println("输入错误,该数字的位数大于5");
return;
}else{
System.out.println("该数字是"+length+"位数");
System.out.print("该数的逆序是:");
for (int i = arr.length-1; i >=0 ; i--) {
System.out.print(arr[i]);
}
} } }
25.【程序25】
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
package com.niit.homework1; import java.util.Scanner; /**
* @author: Annie
* @date:2016年5月21日
* @description:【程序25】 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
*/
public class Palindrome { public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("请输入要判断的数字");
int num = reader.nextInt();
judgePalidrome(num);
} /**
* @param num
* @param g 个位
* @param s 十位
* @param q 千位
* @param w 万位
*/
private static void judgePalidrome(int num) {
int g = 0,s = 0,q = 0,w = 0;
int n,m,h;
w =num/10000;//万位
//千位
n=num%10000;
q=n/1000;
//十位
m =num%100;
s = m/10;
//个位
g = num%10;
if((g == w)||(s==q) ){
System.out.println(num+"是回文");
}else{
System.out.println(num+"不是回文");
}
}
}