java例题_21 求 1+2!+3!+...+20!的和

 1 /*21 【程序 21 求阶乘】
 2 题目:求 1+2!+3!+...+20!的和
 3 程序分析:此程序只是把累加变成了累乘。
 4 */
 5
 6 /*分析
 7  * 1、汲取上一题的教训,这么大的数字,long类型
 8  * 2、for循环,两层,一层控制1~20,另一层控制阶乘
 9  * */
10
11 package homework;
12
13 public class _21 {
14
15     public static void main(String[] args) {
16         //声明一个long类型的和S,中间值每项值x
17         long s=0;
18         long x=1;
19         for (int i=1; i<=20; i++) {
20             for (int j=i; j>0; j--) {
21                 x=x*j;
22             }
23             s=s+x;
24 //            System.out.println(x+"\t"+s);
25             x=1;  //x复位
26         }
27         System.out.println("和为:"+s);
28
29     }
30
31 }

原文地址:https://www.cnblogs.com/scwyqin/p/12305530.html

时间: 2024-08-05 19:18:21

java例题_21 求 1+2!+3!+...+20!的和的相关文章

java例题_11 求不重复数

1 /*11 [程序 11 求不重复数字] 2 题目:有 1.2.3.4 这四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 3 程序分析:可填在百位.十位.个位的数字都是 1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 4 */ 5 6 7 /*分析 8 * 根据提示,三个位子分别放入这个四个数字,可以用三重for循环,然后添加if条件排除掉有重复的组合,就可以得到所有的无重复三位数 9 * 另外,加一个count计数器,没有一个满足的数字就加1,就能得到有多少个 1

java例题_06 最大公约数&amp;最小公倍数

1 /*6 [程序 6 求最大公约数及最小公倍数] 2 题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数. 3 程序分析:利用辗除法. 4 */ 5 6 /*分析 7 * ============================= 8 * 辗转相除法求[最大公约数]: 9 * 如我们计算10和25的最大公约数.用辗转相除法是这么计算的: 10 * 25÷10=2······5 11 * 10÷5=2······0 12 * 那么25和10的最大公约数就是5. 13 * =======

求1+2!+3!+...+20!的和

public class jiecheng2 { public static void main(String[] args) {  // TODO 自动生成的方法存根    int i,sum=1,k=0;  for(i=1;i<=20;i++)  {   sum*=i;   k+=sum;  }  System.out.print("求1+2!+3!+...+20!的和为       "+k); } }

求1+2!+3!+...+20!的和。

package com.liron.p1; /**求1+2!+3!+...+20!的和*/ public class Topic25 { public static void main(String[] args){ long sum=0;//因为数太大要定义成long类型 long n=1; int i=1; for (i=1; i<=20 ;i++ ){ n*=i;//此处是计算每个项的阶乘 sum+=n;//此处是把每个项的阶乘数依次相加 } System.out.println("

java 数组中求最值

java中数组求最值,这在实际的开发中几乎用不到,但是在面试中会偶尔被问到,这是考你基本的思维能力,现在说下这个题的基本思路 思路: 1:先定义一个变量,一般是用数组的第一个值 2:在循环中判断(从第二个角标到数组的length-1角标对应的值)是否大于这个之前定义的值,如果大于那么就把这个值赋值给max,直到比完就可以求出最大值 代码如下: public static void main(String[] args) { int[] arr = {1,3,5,6,9,7}; int max =

java例题_22 用递归求阶乘 5!

1 /*22 [程序 22 递归求阶乘] 2 题目:利用递归方法求 5!. 3 程序分析:递归公式:fn!=fn*4! 4 */ 5 6 /*分析 7 * 递归:如果其中每一步都要用到前一步或前几步的结果,称为递归的 8 * 根据提示,可以用算法x!=x*(x-1)!;y=x-1,y!=y*(y-1)!;... 9 * 10 * */ 11 12 13 package homework; 14 15 public class _22 { 16 17 public static void main

java例题_23 递归求年龄

1 /*23 [程序 23 求岁数] 2 题目:有 5 个人坐在一起,问第五个人多少岁,他说比第 4 个人大 2 岁.问第 4 个人岁数,他说比第 3 个 3 人大 2 岁.问第三个人,又说比第 2 人大两岁.问第 2 个人,说比第一个人大两岁.最后问第一个人,他 4 说是 10 岁.请问第五个人多大? 5 */ 6 7 /*分析 8 *除第一个人外,每个人都比前面那个人大2岁,用递归算法 9 *x2=x1+2,x3=x2+2,x4=x3+2,x5=x4+2;x1=10 10 * */ 11 1

java例题_15 有小到大排序

1 /*15 [程序 15 排序] 2 题目:输入三个整数 x,y,z,请把这三个数由小到大输出. 3 程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 的值进行交换, 4 然后再用 x 与 z 进行比较,如果 x>z 则将 x 与 z 的值进行交换,这样能使 x 最小. 5 */ 6 7 /*分析 8 * 冒泡排序法 9 * */ 10 11 package homework; 12 13 import java.util.Scanner

java例题_24 逆向输入数字

1 /*24 [程序 24 根据输入求输出] 2 题目:给一个不多于 5 位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 3 */ 4 5 /*分析 6 * 首先从键盘得到一个正整数,不超过5位数用int; 7 * 用%和/将每个数字分离后存入数组,位数就是数组的角标+1,用for循环正向输出数组 8 * 分离时用while判断是否分离完成 9 * */ 10 11 package homework; 12 13 import java.util.InputMismatchExce