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+"不是回文"); } } }