oracle计算6的阶乘,oracle 求阶乘
//求阶乘
//数学里面最直接的阶乘定义就是,将这个数n乘以n-1,再乘以n-1-1,一直乘到1,
//所得到的结果就是n的阶乘:n!=n*(n-1)*(n-1)*...*2*1,这里要注意:0!=1
//下面定义一个球阶乘的函数:
create or replace function fun_factorial(num number)
return number
is
result number:=1;
begin
if num<0 then
raise_application_error(-20012,' function parameters can not be less than zero');
elsif num=0 or num=1 then
return 1;
else
for i in 2..num loop
result:=i*result;
end loop;
return result;
end if;
end fun_factorial;
/
SQL> select fun_factorial(5) from dual;
FUN_FACTORIAL(5)
----------------
120
//
SQL> select fun_factorial(6) from dual;
FUN_FACTORIAL(6)
----------------
720
//当我们给阶乘函数传递负数时,我们将得到最初设定的错误
select fun_factorial(-6) from dual
ORA-20012: function parameters can not be less than zero
ORA-06512: at "YEEXUN.FUN_FACTORIAL", line 7
//
//如果有这样的要求呢?
//n!+(n-1)!+(n-2)!+...+2!+1!
//我们该怎么处理呢?
create or replace function fun_sum_of_factorial(n number)
return number
as
results number:=0;
begin
//下面使用nvl(n,5)为了保证用户有输入,如果没有输入数据,默认为5
for i in 1..nvl(n,5)
loop
//这里调用了上面我们创建的fun_factorial函数,求每一个数的阶乘
//然后再将每个数的阶乘相加就能得到结果了
results := results + fun_factorial(i);
end loop;
return results;
exception
when others then
dbms_output.put_line(sqlerrm);
end fun_sum_of_factorial;
/
SQL> select fun_sum_of_factorial(5) from dual;
FUN_SUM_OF_FACTORIAL(5)
-----------------------
153
//
SQL> select fun_sum_of_factorial(50) from dual;
FUN_SUM_OF_FACTORIAL(50)
------------------------
3.10350532295462E64
//
//如果能用一句话写出来那该多好啊!
//
select sum(nm)
from (
select power(2,sum(log(2,level)) over(order by level)) nm
from dual
connect by level<=5)
/
SUM(NM)
----------
153
oracle计算6的阶乘,oracle 求阶乘相关推荐
- Java求阶乘和求阶乘之和
* name:first 功能:1.求阶乘 2.求阶乘之和*/ package exe01;import java.util.Scanner; //输入类 import java.io.Buffere ...
- oracle 计算加一年,oracle时间计算不足一年按一年计算怎么做啊?
2012-12-24 回答 两个date类型字段:start_date,end_date,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: round(to_number(end_da ...
- oracle计算每月最小工作日,Oracle计算指定日期内的工作日(不包含周末)
1.获取当天是礼拜几:select to_char(sysdate,'d') from dual; --礼拜天为1,礼拜一为2,类推 2.获取 两个时间段间的 工作日: select (trunc(& ...
- 求n的阶乘和求n的阶乘和——两种方法
方法一:递归求阶乘+循环求阶乘和 #include<iostream> using namespace std; int main() {int fac(int n);//声明函数int ...
- Oracle求5的阶乘,oracle 求阶乘 | 学步园
//求阶乘 //数学里面最直接的阶乘定义就是,将这个数n乘以n-1,再乘以n-1-1,一直乘到1, //所得到的结果就是n的阶乘:n!=n*(n-1)*(n-1)*...*2*1,这里要注意:0!=1 ...
- c语言n位水仙花数简书,Kotlin中函数式编程API(8)求阶乘和计算水仙花数
求阶乘 计算水仙花数 前面介绍了很多函数,下面两个需求使用前面的函数将变得简单清晰. 一.求阶乘 求阶乘通常会使用递归函数调用,这比较影响性能,可以通过前面介绍的 reduce 函数实现. fun f ...
- mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...
点击查看请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!具体信息 答:include "stdio.h" int fac(int k) { if(k==1) ...
- python求阶乘之和_python计算阶乘前n项和
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 知道公式后就很简单了,利用for循环,第几行i+1就等于几,当然python中是 ...
- 4. linux调用文件计算阶乘前5项和_【题解循环】1091:求阶乘的和
1091:求阶乘的和时间限制: 1000 ms 内存限制: 65536 KB [题目描述] 给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!),输出阶乘的和. [输 ...
最新文章
- 【python】Series和DataFrame的简单介绍
- 关于String字符串的常用操作。(持续更新中)
- CodeForces - 1295C Obtain The String(dp预处理+贪心)
- 休眠后gpio状态_1.Linux电源管理-休眠与唤醒
- 5G毫米波三大自然缺陷
- 基于分位数回归的静态CoVaR计算 案例与代码
- FreeMarker(一)初识
- PyKDL---正运动学和逆运动学
- 重庆交通大学计算机科学与技术怎么样,计算机科学与技术 大学实力哪家强?(干货)...
- 在阿里云主机上部署Mysql数据库详细教程
- PhpSpreadsheet VS Box\Spout读取excel性能对比
- 计算机网络之传输层笔记
- [附源码]JSP+ssm计算机毕业设计校园征兵及退役复原管理系统16z67【源码、数据库、LW、部署】
- Axure设计网页时,需要注意的尺寸设置。
- python生日祝福短信_python-定时发送生日邮件祝福
- Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915解决办法
- 日常记录20210102
- 【单调栈】 扶桑号战列舰
- 飞鸽传书、freeeim、ipmsg区别联系
- 物体跟着鼠标移动旋转
热门文章
- WIN10 VS2013 GTX960M NVIDIA显卡驱动和CUDA7.5安装 配置Caffe
- Linux无法删除只读文件的解决方案
- 计算机基础是公共必修课,计算机公共必修课《大学计算机基础》课程教学大纲.doc...
- 计算机软考考试难度大吗?据说是行业唯一的证书,自学还是报班好?
- 对于学习率与梯度下降的通俗总结:
- 牛客网java_牛客网笔试Java输入输出救命模版
- Hive分桶之BUCKET详解
- error[E0277]: Rust语言如何print struct内容?
- PX4装机教程(七)几种常用的遥控器的使用
- COVID-19 Cases Prediction (Regression)