1樓:匿名使用者
取得1~n這些數中約數是5的個數
2樓:
你只需要統計n!中有多少個 2和多少個5
,取最小值就是末尾0的個數,舉個列子:要求10!末尾有幾個010!
= 1*2*3*4*5*6*7*8*9*10 很容易知道有有8個2相乘,和2個5相乘那麼也就是末尾有2個0,而10!=3628800,也是2個0,而且因為是階層,所以2的個數絕對是大於等於5的個數的,所以也可以只統計多少存在個5相乘
c++**:
#include
using namespace std;
int main()
while(temp%5==0)
}int res =count2>count5?count5:count2;
cout<< res < return 0; }基本思路就是這樣,至於怎麼再去優化,自己思考吧,而且這個效率也算不錯了 3樓:匿名使用者 #include "stdio.h" #include "conio.h" void main(void) }for(i=0;i printf("the total number is %d",count); }個人覺得簡單易懂 如何用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++程式設計:輸入一個自然數n,求 n!,同時統計結果中有多少個0。 8樓: #include #include int factorial(int n) //計算n! int account(int m) //計算n!裡面0的個數return i; }void main() 執行過了,時間關係,演算法沒有優化...另外,計算範圍有限...應該可以交差了吧... 題目「階乘尾數零的個數。n!的末尾有多少個零。」把帶有c++語句的部分改成c語言的語法,標頭檔案要stdio.h 9樓: #include int main() printf("the number of zero is %d\n", c);//輸出"the number of zero is %d\n"到螢幕,其中%d用c的值替換 return 0;} 10樓:匿名使用者 n/=5; //這個方法挺好的哈,學習啦。。。 c++程式,求 n 個整數之和 11樓:匿名使用者 #include int main() std::cout< 求一個c語言程式,輸入一串字元,以'#'結尾,並統計其中數字,字母,空格和其他字元的個數 12樓:gta小雞 #include int main() return 0;} 提供示例 供參考 求給定陣列中的最大值 function getmaxinarray a array of integer integer vari integer tmpmax integer begin tmpmax a 0 for i low a to high a dobegin if a ... 語句h 0 換個合適的位置,放到 for g 0 g例如 for g 0,h 0 g結果不超出32位的int範圍,但是這個中間結果 k k a j 先都積起來,可能會超過哦,所以這個演算法不算好,要求不嚴的情況下勉強能用 的想可完善後可行,分解質因數,彙總質因數,然後把它們相乘 彙總質因數不能是簡單... vc6除錯 襲通bai過du zhi include main printf 1 2 我來實現 include unsigned long func int n return res void main 用c語言編寫程式 求s 1 2 3 n n由鍵盤輸入 include main 編譯通過且符合題...delphi求多個數最大值,C 求N個數中的最大值
c語言題求n個數的最小公倍數C語言題求n個數的最小公倍數
C語言編寫程式求S1231N