经典算法之查询一个参数的阶乘
前言
就算法而言,我们主要学习的是数学+思维+逻辑+数据结构实现功能,所以我们主要学习是思维也是解决问题的思路,然后用逻辑去实现它。
提示:以下是本篇文章正文内容,下面案例可供参考
一、什么是阶乘?
一个正整数的阶乘,是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。
公式:大于等于1
任何大于等于1 的自然数n 阶乘表示方法:
或
0的阶乘 0!=1。
从1到n的正整数之积,以n!来表示。如1×2×3×4×5为5的阶乘,以5!表示。
二、代码实现
1、实现方式一
package com.zrrd.lianxi;
public class 求阶乘 {
public static void main(String[] args) {
fun(5);
}
//输入到几的阶乘
public static void fun(int num) {
//定义一个阶乘和
long hezhi=0;
//遍历1~num
for (int i = 1; i <= num; i++) {
//调用算出阶乘的方法,得到值加上和返回;
hezhi = getJechengOne(i);
}
System.out.println("参数:" + num + "的阶乘值为" + hezhi);
}
//先求出每个数的阶乘
public static long getJechengOne(int i) {
long jc = 1;
for (int j = 0; j < i; j++) {
jc *= (j + 1);
}
//返回每个阶乘数
return jc;
}
}
效果截图:
1、实现方式二
package com.zrrd.lianxi;
public class 求阶乘 {
public static void main(String[] args) {
fun(3);
}
//输入到几的阶乘
public static void fun(int num) {
//定义一个阶乘和
long hezhi=0;
//遍历1~num
for (int i = 1; i <= num; i++) {
//调用算出阶乘的方法,得到值加上和返回;
hezhi = getJechengTwo(i);
}
System.out.println("参数:" + num + "的阶乘值为" + hezhi);
}
//先求出每个数的阶乘
public static long getJechengTwo(int i) {
//先定义1的阶乘是1
long jc = 1;
//从1累计阶乘
for (int j = 1; j <= i; j++) {
jc = jc * j;
}
//返回每个阶乘数
return jc;
}
}
效果截图:
总结
以上两种方式都可实现查询阶乘的逻辑,具体的思路以及实现都已经在代码上注释了详细的的介绍。