`
zhou_zhihao
  • 浏览: 57188 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

问题20-求100!的各位数字之和

 
阅读更多

问题描述如下:

n!=n*(n-1)*...*2*1,求100!的各位数字之和。

 

上代码:

/**
	 * n!
	 * 
	 * @param n
	 * @return
	 */
	private static Long factorial(Long n) {
		Long result = n;
		for (Long i = n - 1; i > 1; i--) {
			result *= i;
		}
		return result;
	}
	

  由于超出100!的范围,使用BigDecimal,代码如下:

/**
	 * n!
	 * 
	 * @param n
	 * @return
	 */
	private static String factorial(Long n) {
		BigDecimal result = new BigDecimal(n);
		for (Long i = n - 1; i > 1; i--) {
			result = result.multiply(new BigDecimal(i));
		}
		return result.toString();
	}

  求和:

	/**
	 * 求n!的各位数字之和
	 * @param s
	 * @return
	 */
	private static int sum(String s){
		int sum=0;
		for (int i = 0; i < s.length(); i++) {
			sum+= Integer.parseInt(s.charAt(i)+"");
		}
		return sum;
	}

  通过sum(factorial(100L))可以得到结果:648

 

请不吝赐教。

@anthor ClumsyBirdZ

分享到:
评论

相关推荐

    1002 写出这个数 (20分).c

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10 ​100 ​​ 。 输出格式: 在一行内输出 n...

    浙江大学C语言上机练习题附答案

    70021 求矩阵各行元素之和 11 70022 矩阵运算 12 70023 九九乘法表 13 夏2周 14 70024 判断上三角矩阵 14 70025 算算看,这是第几天? 15 70026 找鞍点(选作) 16 70031 将字符串逆序存放 17 70032 查找字符 18 70033...

    C++编程练习题大全(带答案).pdf

    - 水仙花数(自幂数)的识别:通过三层嵌套循环遍历100-999之间的所有数,判断每个数是否等于其各位数字的立方和。 - 判断输入的数是否同时是5和7的倍数:通过条件语句检查输入数的特定特征。 - 成绩等级划分:...

    编程算法练习--没事的时候练练

    - **描述**:对于一个3x3的二维数组,求其主对角线元素之和。 - **实现思路**: - 使用双重循环访问二维数组的每个元素。 - 当下标i等于j时,该元素为主对角线元素,累加到总和中。 #### 知识点三十:数组旋转 - ...

    练习P20入门版答案

    一个三位数,各位数字互不相同,十位数字比个位、百位数字之和还要大,且十位、百位数字之和不是质数。编程找出所有符合条件的三位数。 注:1. 不能手算后直接打印结果。 2. “质数”即“素数”,是指除1和自身...

    100个经典C语言算法

    - **算法描述**:水仙花数是指一个三位数,其各位数字立方和等于该数本身。 - **编程实现**: - 通过`for`循环遍历100到999之间的每一个数。 - 对于每个数,使用整除和取余操作来分离出百位、十位和个位的数字。 ...

    80道题让你成为编程高手pascal.doc

    - **题目描述**:如果一个自然数的数字之积加上这些数字之和正好等于这个自然数,称这样的自然数为“巧数”,求100以内的所有巧数。 - **解题思路**: - 遍历1到99之间的所有自然数。 - 对每个数计算其各位数字的...

    100个经典例题(C语言).doc

    - **描述**:求1至20的所有整数的阶乘之和。 #### 【程序26】题目:利用递归方法求5! - **知识点**: - 递归函数 - 阶乘概念 - **描述**:使用递归函数计算5的阶乘。 #### 【程序27】利用递归函数调用方式,反向...

    高级语言程序设计20-21期中1

    水仙花数的定义是三位数,其各位数字的立方和等于该数本身。为实现此功能,我们需要遍历 100 到 999,通过除以 100、10 和 1 来获取百位、十位和个位数字,并计算它们的立方和,然后进行比较。 5. **条件控制流**:...

    学习情境三循环结构PPT学习教案.pptx

    - 求分数序列的前20项之和,如3 + 1/2 + 1/3 + ...,可以使用for循环逐步累加。 5. **for循环的执行次数**: - 第三个for循环的执行次数问题,通过分析条件表达式,可以判断循环执行的具体次数。 6. **程序段的...

    c语言考试必备!.pdf

    5. 有一个分数列,2/1, 3/2, 5/3, 8/5, 13/8,求这个数列前20项之和。 这是一个基本的数学问题。使用for循环可以遍历数列的前20项,然后计算其和。 6. 用迭代法求X=根号A。 这是一个基本的数学问题。迭代法是一种...

    C语言经典100例

    输入一个正整数,输出原数并逆序打印出各位数字 - **知识点介绍**: - 递归函数:使用递归方法实现逆序输出数字。 - 数字操作:通过取模和除法操作来分离数字的每一位。 - **代码分析**: - 主函数中使用`...

    DS18B20测温实验原理及实现

    DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从...

    数字温度计ds18b20的详细中文资料

    DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从...

    java经典小程序,java入门100例!.doc

    前20项之和? 11、计算圆周率 PI=4-4/3+4/5-4/7....... 打印出第一个大于 3.1415小于 3.1416的值 12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值 16、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个...

    26道基础算法题.pdf

    **定义**:“水仙花数”指一个三位数,其各位数字立方和等于该数本身。 **解题思路**: - 遍历100至999之间的所有整数。 - 对每个数分解出百位、十位和个位,并计算它们的立方和。 - 如果立方和等于该数本身,则...

    Java50道经典题目

    - **知识点**: 水仙花数是指一个三位数,其各位数字立方和等于该数本身(如153 = 1^3 + 5^3 + 3^3)。 - **实现方法**: - 遍历100到999之间的所有三位数。 - 对每个数进行分解,分别计算百位、十位、个位数字。 -...

    经典C语言程序设计100例11-20.docx

    水仙花数是指一个三位数,其各位数字的立方和等于该数本身。程序通过遍历100到999的所有数,将每个数分解成百位、十位和个位,然后检查这三个数字的立方和是否等于原始数。如果是,就将其打印出来。 【程序 14】是...

Global site tag (gtag.js) - Google Analytics