Java实现求阶乘和的三种方法

Java编程实例之---Java中的阶乘程序 更重要的是,由于可以存储 n 个大小为常数的条目,因此 memoization 缓存(HashMap)的值在空间复杂度上为 O(n)。在最坏的情况下,递归树的大小为 n,这意味着调用堆栈使用 O(n) 空间。:非负整数 n 的阶乘是所有小于或等于 n 的正整数的乘积。发音为“4 的阶乘”。这也具有 O(n) 的时间复杂度,最坏的情况涉及在恒定时间内进行 n 次递归调用。让我们看看使用 Tabulation 的 Java 中的阶乘程序。空间复杂度也是 O(n),因为用于存储阶乘值的数组大小为 n+1。 阅读详情

今天考试没考好,所以好好反省了一下,说明自己的基础知识不够牢固,所以对每个编程题进行研究。

第一种解法:原始的利用for循环

题目:求1!+2!+3!+4!+…+N!的值

public class Sum {
	public static void main(String[] args){
		long s;
		long sum=0;
		for(int j=1;j<=20;j++){//外循环
			s=1;
		 for(int i=1;i<=j;i++){//内循环,求对应数的乘方
		    	  s=s*i;
		      }
		      sum=sum+s;
			
		}
		 System.out.println("总和为:"+sum);
		}
	 
}

第二种方法:利用方法

public class Sum {
    private static long factorial(int num) {//获取相应数的阶乘方法
		if( num==1){
			return 1;
		}
			return num*factorial(num-1);
		
	}
    public static long sum(int num){//求对应数的和的方法
		if( num==1){
			return 1;
		}
		return factorial(num)+sum(num-1);
		
	}
	public static void main(String[] args) {
		System.out.println(sum(20));
	}
}

第三种方法:for循环+方法

public class FacDemo {
	//求阶乘的方法
	public long fac(int n){
		long s=1;
		for(int i=1;i<=n;i++){
			s*=i;//s=s*i;
		}
		return s;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		FacDemo facDemo=new FacDemo();
		long fac=facDemo.fac(3);
		System.out.println("3!="+fac);//测试是否正确
		//求1!+2!+3!+4!+..10!
		long sum=0;
		for(int i=1;i<=20;i++){
			fac=facDemo.fac(i);
			sum+=fac;
		}
		System.out.println("1!+2!+3!+4!+..20!="+sum);
	}

}

java实现阶乘(附完整源码) 阅读详情

相关推荐

Java实现阶乘

阶乘是一个常见的数学运算,用于计算一个正整数的阶乘结果。阶乘定义如下:对于一个非负整数n,它的阶乘n!表示从1到n的所有正整数的乘积。这是一个简单的Java实现阶乘的例子。如果你有任何问题,请随时提问。你可以将上述代码复制到Java编译器中进行编译和运行,然后根据需要修改。是否为0或1,如果是,则直接返回1,因为0和1的阶乘都是1。,将每个数字乘以前面所有数字的乘积,并将结果存储在。,并返回计算得到的阶乘结果。在上面的代码中,我们定义了一个。变量的值,计算不同数字的阶乘。方法,并将计算结果打印输出。

CyberNerdX的博客 505

Java实现阶乘的计算(四种方法)

用Java实现阶乘的计算 Java入门练习 废话不多说,直接上代码。 import java.math.BigInteger; import java.util.ArrayList; public class doFactorial { public static void main(String[] args) { int number=5; System.out.prin...

AD_CSY的博客 4万+

ANSYS APDL齿轮建模实战:从渐开线方程到完整3D模型的保姆级教程

本文详细介绍了使用ANSYS APDL进行齿轮建模的全过程,从渐开线方程的数学基础到完整3D模型的创建。通过参数化命令流实现高精度齿轮建模,特别适合机械设计和仿真分析需求。教程包含关键参数计算、APDL环境配置、单齿齿廓建模以及全齿轮阵列复制等实用技巧,帮助工程师快速掌握ANSYS APDL在齿轮建模中的应用。

lg888的博客 446

用Java实现阶乘

阶乘在高中时都学过,比如说5的阶乘用数学表示就是5!,在写的通俗一点就是5 * 4 * 3 * 2 * 1。用一个数学公式表示就是n!=1 * 2 * 3 * …n。阶乘也可以用代码实现,Java中有三中循环结构,先看for循环的 import java.util.Scanner; public class jiecheng { public static void main(String[] args){ Scanner a = new Scanner(System.in);

weixin_52744583的博客 3777

ADS入门学习笔记——低噪声放大器(2)

1、输入匹配网络; 2、输出匹配网络;

weixin_42126696的博客 4990

Solidworks钣金设计:折弯系数、K因子与折弯扣除的实战应用解析

本文深入解析Solidworks钣金设计中折弯系数、K因子与折弯扣除的核心概念与实战应用。通过厘清三者间的逻辑关系与换算方法,并结合材料特性、工艺参数及车间实测,指导工程师精准确定展开长度,确保设计图纸与加工实物的一致性,有效提升钣金件设计精度与生产效率。

weixin_29268267的博客 918

Java求阶乘和

1.定义一个方法,方法里面使用一个循环,在调用时再使用一个循环反复调用。求 1~n 数字的阶乘和,n为键盘输入的数字。2.定义一个方法,方法里面使用嵌套循环。1.Scanner键盘输入技术。2.方法的定义和调用。...

小只.的博客 1万+

HCIA-Storage 存储工程师学习笔记——1. 存储技术趋势

文章目录1. 存储技术趋势1.1 数据、信息与数据存储1.2 存储技术的发展①存储架构的发展②存储介质的发展③ 接口协议的发展1.3 存储产品的发展趋势 华为HCIA-Storage认证地址:https://e.huawei.com/cn/talent/#/cert/roadmap 1. 存储技术趋势 1.1 数据、信息与数据存储 什么是数据? ​ 数据是对所有事物的数字表示。 数据的种类? 结构化数据 半结构化数据 非结构化数据 数据的处理周期 ​ 数据处理是人或机器对数据进行的重组或重新排序,

超级大洋葱的博客 2843

Java 阶乘算法 三种简单实现

阶乘算法: Java 方法(一) package 第一章; import java.util.Scanner; import java.util.Arrays; public class fact1 { public static int fact1(int n) { if (n == 0) { return 1; } return n * fact1(n ...

steven_cici的博客 6004

Tessent Atpg系列 第七章 Running ATPG Patterns -- 如何书写proc文件

本篇文章是记录Tessent scan ATPG系列 本文并非是对userguide的完全翻译,而是自己对userguide的理解,此外,有部分比较深入的内容可能需要后续实验验证。本系列并不对tessent scan做过多描述。 请勿随意转载: 优快云 博主: ciscomonkey一种是在使用tessent scan之后使用ATPG 另一种是使用第三方工具,如snps的DFTC之后使用tessent的ATPG。 这里我们仅仅介绍without tessent scan之后tessent ATPG:对于t

ciscomonkey的博客 7693

OpenOCD入门到精通:第 4 章 配置文件体系详解

本文深入解析OpenOCD配置文件的体系结构和工作机制。首先介绍了配置文件的搜索路径优先级和加载顺序,以及配置阶段与运行阶段的区别。然后详细分析了interface配置文件的适配器参数调优方法,包括ST-Link、CMSIS-DAP和FTDI等常见调试器的配置示例。最后重点讲解了target配置文件的核心结构,包括TAP声明、目标创建和工作区设置等关键步骤,并以stm32f1x为例展示了完整的配置流程。通过本文可以全面了解OpenOCD配置文件的分层设计理念和参数化配置方法。

从事嵌入式linux android驱动开发,拥有全栈能力 594

使用Java方法求阶乘之和

方法一: public class SumFactorial{ public static void main(String[] args){ System.out.println("结果为"+find(5)); //输出结果 } public static long Factorial(int n){ //定义Factorial方法求一个阶乘 long s=1; for (; n>=1;x-- ){ //累乘 s

qq_45774645的博客 7959

2024年12月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

他尝试编写了如下程序,请你完善划线处的代码,计算出在h点s分放学时,三个时针分别经过3点位置的次数,用一个元组表示各指针经过3点位置的次数 (时针次数,分针次数,秒针次数) ,并输出。所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。匿名函数,冒号之前表示的是这个函数的参数,冒号之后表示返回值,可以使用默认值,使用时需要将它赋值给一个变量,设置默认值不是必须,如无传入实参则使用默认值,如有传入实参则使用实参。

人生就是一个不断学习的过程 370

java求阶乘

输入一个数,求出它的阶乘 方法一(利用for循环) import java.util.Scanner; class TestMul{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入要求的数阶乘:"); int num = sc.nextInt(); int result=1; for(int i=1;i<=num;i++){

zhoutianhua的博客 7313

Android日志实战——Tombstones日志分析(七)

Tombstones 一般是由 Dalvik 错误、状态监视调试器、C 层代码以及 libc 的一些问题导致的。当系统发生 Tombstone 的时候,内核(kernel)首先会上报一个严重的警告信号(signal),上层接收到之后,进程的调试工具会把进程中当时的调用栈现场保存起来,并在系统创建了 data/tombstones 目录后把异常时的进程信息写在此目录里面,开发者需要通过调用栈来分析整个调用流程来找出出问题的点。Tombstone原因分析pid 与 tid 相同,问题出在主线程。

小旭的专栏 2521

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java调用方法求n的阶乘_java用三种方法实现阶乘n!

? 用三种方法来实现n!实现使用BigDecimal类,因为用int最多正确算到12!,用long最多正确算到20!.废话不多说,直接上代码:?? 第一种方法:?//第一种方法:package Factorial;import java.math.BigDecimal;import java.util.Scanner;public class Factorial1 {public static B...

weixin_33603105的博客 2150

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java实现 求阶乘和

问题描述 定义方法,求出1!+2!+3!+…+n!的和,其中的数字n由用户输入。 备注:!表示阶乘,n!=n*(n-1)(n-2)…*1 import java.util.Scanner; public class Test02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个数字:"); int n = sc.nextInt()

好吃不腻的博客 1413

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java求阶乘和求阶乘之和

* name:first 功能:1.求阶乘 2.求阶乘之和 */ package exe01; import java.util.Scanner; //输入类 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; impo...

ELF1111的博客 2395

Java--求阶乘和

1、问题 求1!+2!+3!+4!+…+n!的和 2、阶乘如何计算? 1的阶乘为1,2的阶乘等于21,3的阶乘等于321,那么n!=n(n-1)(n-2)…*1 3、阶乘和: 求出每一个数的阶乘再进行相加 4、代码实现: package demomethod03; import java.util.Scanner; /** * 求阶乘和 * 求1!+2!+3!+4!+........+n!...

Subuprogrammer的博客 1170

java用三种方法实现阶乘n!

用三种方法来实现n!实现使用BigDecimal类,因为用int最多正确算到12!,用long最多正确算到20!.实现方法都比较简单,但是转换为BigDecimal实现后可能看起来有点莫名其妙。废话不多说,直接上代码:     第一种方法:从1开始,一直递增乘到n,从而实现n!   Java代码   package Factorial;      im

playwife的博客 2465

Java求n的阶乘

题目要求 从键盘输入一个数字n,求出n的阶乘 实现代码 import java.util.Scanner; public class Main { public static int factorial(int x){//factorial:阶乘 int product = 1;//乘积 for (int i = 1; i <= x ; i++) { product = product * i; }

小只.的博客 7821

求1到10的阶乘和;

求1到10的阶乘和; 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ...

weixin_44831330的博客 2074

求n的阶乘递归方法Java

是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!假设n为3那么3的阶乘就是3!=3*2*1,如果用成n的就是n!=n*(n-1)*[(n-1)-1]写代码前我们要写出阶乘递归的公式这样才能更清楚写出代码。递归如果不加条件就会不停的调用自己,n的阶乘公式是。这样就看出来结束条件就是n=1的时候就结束了。=n*fac(n-1)递归,就是在运行的过程中调用自己。我们已经了解了递归和阶乘的概念。1.先给递归设立一个结束的条件。这样就求出来n的阶乘了。......

canyou1998的博客 1万+

阶乘java_Java中求阶乘的算法

Java中求阶乘的算法1.一般算法:public class Factorial {public static int factorial(int n) {if (n < 0 || n > 16) {System.err.println("n must be great than 0 and less than 17");return -1;} else if (n == 0) {re...

weixin_39727863的博客 1406

Java递归算法和迭代算法求阶乘

什么是递归: 1.1含义: 递归就是一个函数直接或者间接的调用自己的方法; 1.2如何利用递归求阶乘? 分析: 例如:求4的阶乘 等于4*3*2*1; 假设我们把使n=4的话,那么等式就变成 n*(n-1)*(n-2)(n-3) 第一个数:n 第二个数=第一个数-1; ...

唐星明 2678

java 求1到n的阶乘和

import java.util.Scanner; public class jiecheng { public static void main(String[] args) { // TODO Auto-generated method stub // int sum=0,su; // for (int i = 1; i // su=1; // for

baikaishui86的专栏 8491
上一篇: Java封装作业
下一篇: java面向对象综合案例作业
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值