c語言中怎麼得到任意整數的階乘末尾的0的個數

2021-04-26 06:46:09 字數 2208 閱讀 9536

1樓:匿名使用者

/* 算到0xffffffff的階乘沒

問題. 再大就要換資料專型別屬

了 */

#include

unsigned long calc ( unsigned long n )

int main ( void )

2樓:匿名使用者

先用for迴圈求階乘;

然後用取餘數的計算判斷一下最後一個數字是否為0,比版如97010%10,那麼就

權是餘數就是0,只要%10就行。餘數為0就把他輸出,不是0的不用管。也要一個迴圈來遍歷一下。

很簡單,自己寫好了。

另外任意整數是不現實的,必須定義一個最大值,要不計算機會溢位的,隨便給個最大值。比如99999,然後迴圈求從1到99999的連乘運算。最後迴圈用%10的方法,是0的就輸出,不是0的就罷了。

3樓:匿名使用者

int faczeros(int n)

return rzt;}

如何用c++程式設計階乘尾數零的個數,n!末尾有多少個零

4樓:匿名使用者

乘積末尾的0的個數依賴於因子中的2的個數和5的個數。對於階乘來說,每2個數字就至少有一個2的因子,所以2的因子是足夠的。5的因子相對少些,至少連續5個數才能保證一定出現一個。

注意,這裡連續5個書保證出現一個5的因子是指最少的情況。比如1,2,3,4,5,這就只會出現一個。但是考慮 21,22,23,24,25,25 = 5 * 5,所以如果乘以25那就能得到2個5的因子。

#include

using namespace std;

int main(void)

cout<< zerocnt<

return 0;

5樓:匿名使用者

#include

using namespace std;

int main()

cout<<"the number of zero is "<

return 0;

}統計1-n中所有數含有因子5的個數之和,因為只有2和5相乘才會得到一個0,而因子2出現的次數遠比5多,所以5的個數決定了0的個數

ps:樓上好像不對,如果125呢,有3個5,625呢。。。你好像都沒考慮

6樓:孟羽然

tian20090730 的思路很正確,完全同意!但他的**似乎有些問題。

看看我的**吧,這個應該是正解了。採納吧,嘿嘿。

#include

using namespace std;

int main()

while (n > 0)

// 跳到下一個5的倍數處理

n -= 5;

}cout << factor5_count << endl;

return 0;}

7樓:匿名使用者

為了解決這個問題,必須首先從數學上分析在n!結果值的末尾產生零的條件。不難看出:

一個整數若含有一個因子5,則必然會在求n!時產生一個零。因此問題轉化為求1到n這n個整數中包含了多少個因子5。

若整數n能被25整除,則n包含2個因子5;若整數n能被5整除,則n包含1 個因子5。

*程式說明與註釋

#include

using namespace std;

int main()

cout<<"the number of 0 in the end of n! is:"<

return 0;}

c語言程式設計題(階乘+尾數幾個零)

8樓:匿名使用者

#include

void main()

i++;

if(b%i==0)

j++;

}for(i=2;i<=n;i++)

for(k=0;k<=j;k++)

for(i=1;i

if(yinzinum[i]

min=yinzinum[i];

cout<

c語言中怎麼從檔案中把整數讀出來

沒有要求讀出來放在 所以以顯示在螢幕上為例。設檔名為123.txt並在當前目錄下,程式設計如下 include stdafx.h if the vc 6.0,with this line.include stdio.h include stdlib.h int main void 0 printf ...

c語言中或者是怎麼表示的,C語言中 或者 是怎麼表示的

其它常用運算子 1 移位運算子 左移運 內算符 右移運算子。容 2 關係運算子 關係運算子。3 相等運算子 等於運算子 不等於運算子。4 位與運算子 按位與運算子 5 位異或運算子 按位異或運算子 bitwise exclusive or operator 6 邏輯與運算子 邏輯與運算子。擴充套件資...

C語言任意輸入有五位數字的正整數,逆序輸出每一數位上的數字如輸入12345輸出5

include usingnamespacestd intmain else while key 0 key 0是終止條件cout newnumberis 擴充套件資料 c 輸入一個整數值並輸出此整數的各數字反序的數值 include usingnamespacestd voidfunc int i...