JAVA基础第五组(5道题)

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+"不是回文");
        }
    }
}
原文地址:https://www.cnblogs.com/wangmingxia/p/5520728.html