createfunctionjc(@Aint)
returnsbigintas
begin
declare@Rbigint,@Iint
set@R=1
set@I=1
while@I<=@A
begin
set@R=@R*@I
set@I=@I+1
end
return@R
end
B. 用Transact-SQL語句創建一個求階乘的函數!!!!
居然用SQL這種集合操作語言,來做類C的函數式語言的事(雖然是可以的):(
現在的老師也太無聊了,估計自己很少真正使用SQL。
/*--=============================================
--Author: Yew
--Createdate:2016-10-26
--Description: 計算階乘
--testCode-------------
SELECTdbo.uf_Factorial(-1)
SELECTdbo.uf_Factorial(0)
SELECTdbo.uf_Factorial(1)
SELECTdbo.uf_Factorial(10)
SELECTdbo.uf_Factorial(33)--會否溢出?
----History-----------------
--=============================================*/
ALTERFUNCTIONdbo.uf_Factorial(
@N INT
)RETURNSBIGINT
AS
BEGIN
IF@N<0
RETURNNULL--RAISERROR(N'參數N不能為負')
IF@N=0
RETURN1
RETURNdbo.uf_Factorial(@N-1)*@N--遞歸
END
GO
C. sql 求n階乘
create procere的意思就是建立存儲過程,factorial是存儲過程的名字,@n int定義參數,用來將要計算階乘的數值傳入存儲過程,as關鍵字後面就是存儲過程的定義語句了。
D. 編寫一個求階乘的function過程,並調用該過程用戶輸入的整數的階乘!
你沒寫語言,我按C#寫給你,反正思路是一樣的
第一種方法
利用函數引用實現
int jiecheng(int a)
{
if (a == 1||a==0) return 1;
else return (a * jiecheng(a - 1));
}
第二種方法
利用循環語句實現
int jiecheng(int a)
{
int r=1;
for (int i = a; i >0; i++)
{
r = r * i;
}
return r;
}
E. 編寫一個函數求n的階乘,必須使用MySQL語言編寫
實現不了,因為mysql只是一個資料庫,而不是一種編程語言,mysql只能識別sql語句,不能編寫程序,而用sql語句沒有辦法實現階乘的功能,可以用php之類去實現,mysql主要是提供資料庫服務的。
F. 編寫一個函數求n的階乘,用MySQL語言編寫一個函數求n的階乘,用MySQL語言編寫
mysql不是編程語言,是資料庫
G. 編寫一個求階乘的函數。
#include <stdio.h>
int main(void)
{
int jc(int n);
int k;
printf("請輸入n的階乘:");
scanf("%d",k);
printf("%d",jc(k));
return 0;
}
int jc(int n)
{
int i;
int t =1;
for(i = n; i>0; i--)
{
t= t*i;
}
return t;
}
H. Sum=1!+2!+3!+……10!創建一個求階乘的函數過程,並調用階乘函數程序
求階乘的方法可以通過遞歸的方法來解決,具體代碼如下:
#include<stdio.h>
intmain()
{
intfun(intn);//聲明遞歸函數求階乘
intsum=0;
for(inti=1;i<=10;i++)
{
inttemp=fun(i);
sum+=temp;
}
printf("sum=%d",sum);
return0;
}
intfun(intn)
{
if(n==0||n==1)
{
return1;
}
else
{
returnn*f(n-1);
}
}
I. 用SQL編一個計算階層的函數,然後建一個主程序調用這個函數,計算出5的階層。
create function jieceng( @num int)--求階層
returns int
as
begin
declare @sum int;
declare @i int;
set @i=1;
set @sum=0;
while @i<=@num
begin
set @sum=@sum+@i;
set @i=@i+1;
end
return @sum
end select dbo.jieceng(5)--求5的階乘