當前位置:成語大全網 - 新華字典 - C++編程!!!!!!!

C++編程!!!!!!!

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class Demo5 {

/**

* 獲取階乘的方法

*/

public static int factorial(int i) {

if (i == 1) {

return 1;

}

return factorial(i - 1) * i;

}

/**

* 獲取階乘和

*

* @return 返回包含階乘和的集合

*/

public static List<String> factorialSum() {

List<String> info = new ArrayList<String>();// 準備壹個集合

for (int i = 1; i <= 100000000; i++) {

String temp = i + "";// 將整形轉換為字符串

int len = temp.length();// 獲取長度

int sum1 = 0;

int sum2 = 0;

for (int j = 0; j < len; j++) {// 對數據進行拆分求階乘和,如:123=1!+2!+3!

sum1 = Integer.parseInt(temp.substring(j, j + 1));

if (sum1 != 0) {

sum2 += factorial(sum1);

}

}

if (i == sum2) {// 對階乘和與當前的數字進行比較

info.add(i + "");// 如果符合條件就加入到集合中

}

}

Collections.sort(info);// 對集合進行字典排序

return info;

}

public static void main(String[] args) {

System.out.println(factorialSum());

}

}