1樓:匿名使用者
#include
int main(void)
int i,s=1;
printf("please input a intdata:");
scanf("%d",&i);
for(;i>1;i--)
s*=i;
printf("%d\n",s);
return 0;
這是一個遞迴程,可以看出每遞迴一次n的規模小一,所是結果是線性的。
1、階乘指從1乘以2乘以3乘以4一直乘到所要求的數。例如所要求的數是4,則階乘式是1×2×3×4,得到的積是24,24就是4的階乘。 例如所要求的數是6,則階乘式是1×2×3×……×6,得到的積是720,720就是6的階乘。
例如所要求的數是n,則階乘式是1×2×3×……×n,設得到的積是x,x就是n的階乘。任何大於1的自然數n階乘表示方法: n!
=1×2×3×……×n 或 n!=n×(n-1)! 5!
=5*4*3*2*1=120。
2、所要求的數是4,則階乘式是1×2×3×4,得到的積是24,24就是4的階乘。 例如所要求的數是6,則階乘式是1×2×3×……×6,得到的積是720,720就是6的階乘。例如所要求的數是n,則階乘式是1×2×3×……×n,設得到的積是x,x就是n的階乘。
在表達階乘時,就使用“!”來表示。如n階乘,就表示為n!
2樓:
b這是一個遞迴程,可以看出每遞迴一次n的規模小一,所是結果是線性的。
求該階乘演算法的時間複雜度:int factorial(int n)if(n==0) return 1;else return n * factorial(n-1);
3樓:聽不清啊
該階乘演算法的時間複雜度為o(n)
4樓:匿名使用者
#include"stdio.h"intprime(intn)intmain()
求n!的時間複雜度(只計算一下下面程式的就好)
5樓:聽不清啊
這時間複雜來度就是o(n)。自
這只是用來初學遞迴時用來幫
bai助理解用的。一du般使用時,zhi能用迴圈解決的dao就不用遞迴。
只要用一個迴圈就可以了的。
long fun(int n)
請說明下列演算法的時間複雜度。
6樓:匿名使用者
第一個是 o(8*n) 去常數項就是 o(n)
第二個是 o(m*n)
x+=2和x++ 的複雜度是一樣的 都是o(1) 這也是為什麼在高版精度之類的演算法裡 用四權位、八位分割後 可以提高速度的原因
7樓:匿名使用者
(1)o(n)。外層for迴圈
o(n);內層for迴圈o(1),因為是常數個迴圈;x+=2為o(1)。則總的時間複雜度為o(n)。
(2)o(n^2)。外專層for迴圈o(n);內層屬for迴圈o(n);兩者都是線性時間複雜度。x++為o(1)。則總的時間複雜度為o(n^2)。
8樓:匿名使用者
(1) void sf1 (int n)f(n)=1+n+1+(n+1)*8+(n+1)*8f(n)=2+n+16*(n+1)
f(n)=18+17n
t(n)=o(f(n))=o(18+17n)=o(n)(2) void sf2 (int n, int m){ for (i=0; i,
答t(n)=o(f(n))=o(n+2n²)=o(n²)
演算法的時間複雜度o(n)到底怎麼算
9樓:匿名使用者
看迴圈bai
或者遞迴的層du數。
zhi比如該函
dao數為版o(n)權
int f(int x,int y)
{int i,j;
for(i=0;i
而該函式為o(n2)
int f(int x,int y)
{int i,j;
for(i=0;i
112345nn是正整數,1)1 2 3 4 5 n n是正整數 2)1 3 5 7 11 201 3)2
1 s 1 2 n 1 s n n 1 1 2 1 2 2s 1 n 2 n 1 n 1 n 1 n 1 n 1 n n 1 s n n 1 2 1 2 n s n n 1 2 2 s 1 3 5 201 1 s 201 199 1 2 1 2 2s 1 201 3 199 201 1 202 20...
字元0和整數0有區別麼求高手 求詳解
八哥說科技 1 型別符號不同 字元 0 用字元變數儲存,需要使用型別符號 char 來表示,而整數0用整型變數來儲存時,使用 int 型別符號來申明。2 儲存單元不同 字元 0 在記憶體單元中佔用 1 個位元組即8位來表示,而整型變數儲存 0 在16位字長的機器上,基本整型的長度也為16位,即用 2...
0屬於整數嗎?0是整數嗎?
0是整數。整數分為三大類 1 正整數,即大於0的整數如,1,2,3 直到n 既不是正整數,也不是負整數,它是介於正整數和負整數的數 3 負整數,即小於0的整數如,1,2,3 直到 n。注 現中學數學教材中規定 零和正整數為自然數。整數是正整數 零 負整數的集合。像 2,1,0,1,2這樣的數稱為整數...