在 C++ 中計算 (1^1)*(2^2)*(3^3)*(4^4)*.. 的尾隨零個數
給定一個整數 num 作為輸入。目標是找到乘積 1¹ * 2² * 3³ * … * numnum 中尾隨零的個數。
例如
輸入 num=5 輸出 Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: 5 解釋 The number of 2s and 5s in the product will be:
11 * 22* 33* 44* 55=11 * 22* 33* (22)4* 55. So total 10 2s and 5 5s, minimum is 5 so trailing zeroes will be 5. 輸入 num=10 輸出 Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: 5 解釋 The number of 2s and 5s in the product will be:
11 *22 *33 *44 *55 *66 *77 *88 *99 *1010 = 11 *22 *33 *44 *55 *66 *77 *88 *99 *(2*5)10 . So total 20 2s and 15 5s, minimum is 15 so trailing zeroes will be 15. 以下程式中使用的演算法如下 −
在這個方法中,我們將計算乘積中每個數字的素因數分解中 2 和 5 的個數。由於每個數字都自乘其自身冪次,因此 2 和 5 的個數的最小值將給出尾隨零的個數。因為每個 2*5 在乘積中都會增加一個 0。
將整數 num 作為輸入。
函式 count_trailing(int num) 獲取 num 並返回 (1^1)*(2^2)*(3^3)*(4^4)*..... 中尾隨零的個數。
將初始計數設定為 0。
使用變數 temp_2 = 0, temp_5 = 0 來分別計數 2 和 5 的個數。
使用 for 迴圈從 i=1 遍歷到 i<=num。
將 temp 設為 i。
當 temp 可被 2 整除時,將其減半,並將 i 加到 temp_2 中,作為 2 的個數。
當 temp 可被 5 整除時,將其除以 5,並將 i 加到 temp_5 中,作為 5 的個數。
使用 count = min(temp_2, temp_5) 計算兩個計數的最小值。
返回 count 作為結果。
示例 線上演示
#include <bits/stdc++.h>
using namespace std;
int count_trailing(int num){
int count = 0;
int temp_2 = 0;
int temp_5 = 0;
for (int i = 1; i <= num; i++){
int temp = i;
while(temp % 2 == 0 && temp > 0){
temp = temp / 2;
temp_2 = temp_2 + i;
}
while (temp % 5 == 0 && temp > 0){
temp = temp / 5;
temp_5 = temp_5+ i;
}
}
count = min(temp_2, temp_5);
return count;
}
int main(){
int num = 5;
cout<<"Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: "<<count_trailing(num);
return 0;
} 輸出 如果我們執行上述程式碼,它將生成以下輸出:
Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: 5
相關文章 在 C++ 中計算級數 1 + (1+2) + (1+2+3) + (1+2+3+4) + ... + (1+2+3+4+...+n) 的和
在 C++ 中計算級數 1/(1*2) + 1/(2*3) + 1/(3*4) + 1/(4*5) + ... 的和
以下資料給出了 41 個家庭的子女數量:$1, 2, 6, 5, 1, 5, 1, 3, 2, 6, 2, 3, 4, 2, 0, 0, 4, 4, 3, 2, 2, 0, 0, 1, 2, 2, 4, 3, 2, 1, 0, 5, 1, 2, 4, 3, 4, 1, 6, 2, 2.$將其表示為頻數分佈的形式。
觀察以下模式$1=\frac{1}{2}\{1 \times(1+1)\}$$1+2=\frac{1}{2}\{2 \times(2+1)\}$$1+2+3=\frac{1}{2}\{3 \times(3+1)\}$$1+2+3+4=\frac{1}{2}\{4 \times(4+1)\}$並求出以下每個值:(i) $1 + 2 + 3 + 4 + 5 +….. + 50$(ii)$31 + 32 +… + 50$
化簡:\( 5 \frac{1}{4} \p 2 \frac{1}{3}-4 \frac{2}{3} \p 5 \frac{1}{3} \times 3 \frac{1}{2} \)
求 \( \frac{\left((243)^{1 / 5}\right)^{4}}{\left((32)^{1 / 5}\right)^{4}}=? \)A. \( \quad \frac{3}{2} \)B. \( \left(\frac{3}{2}\right)^{-4} \)C. \( \frac{1}{2^{-4} \times 3^{-4}} \)D. \( \frac{1}{2^{4} \times 3^{-4}} \)
計算:$4 \frac{1}{2}+3 \frac{2}{4}$。
\( 3+\frac{-1}{2}+\frac{-3}{4} \)
觀察以下模式\( 1^{2}=\frac{1}{6}[1 \times(1+1) \times(2 \times 1)+1)] \)\( 1^{2}+2^{2}=\frac{1}{6}[2 \times(2+1) \times(2 \times 2)+1)] \)\( 1^{2}+2^{2}+3^{2}=\frac{1}{6}[3 \times(3+1) \times(2 \times 3)+1)] \)\( 1^{2}+2^{2}+3^{2}+4^{2}=\frac{1}{6}[4 \times(4+1) \times(2 \times 4)+1)] \)並求出以下每個值:(i) $1^2 + 2^2 + 3^2 + 4^2 +…………… + 10^2$(ii)$5^2 + 6^2 + 7^2 + 8^2 + 9^2 + 10^2 + 11^2 + 12^2$
計算(a) \( \frac{2}{3}+\frac{1}{7} \)(b) \( \frac{3}{10}+\frac{7}{15} \)(c) \( \frac{4}{9}+\frac{2}{7} \)(d) \( \frac{5}{7}+\frac{1}{3} \)(e) \( \frac{2}{5}+\frac{1}{6} \)(f) \( \frac{4}{5}+\frac{2}{3} \)(g) \( \frac{3}{4}-\frac{1}{3} \)(h) \( \frac{5}{6}-\frac{1}{3} \)(i) \( \frac{2}{3}+\frac{3}{4}+\frac{1}{2} \)(j) \( \frac{1}{2}+\frac{1}{3}+\frac{1}{6} \)(k) \( 1 \frac{1}{3}+3 \frac{2}{3} \)(l) \( 4 \frac{2}{3}+3 \frac{1}{4} \)(m) \( \frac{16}{5}-\frac{7}{5} \)(n) \( \frac{4}{3}-\frac{1}{2} \)
C++程式,用於計算級數 1/1! + 2/2! + 3/3! + 4/4! + …… n/n! 的和
C++程式,用於計算級數 1/1! + 2/2! + 3/3! + 4/4! +…….+ n/n! 的和
程式用於計算級數 1*2*3 + 2*3*4+ 3*4*5 + . . . + n*(n+1)*(n+2) 的和
觀察以下模式\( (1 \times 2)+(2 \times 3)=\frac{2 \times 3 \times 4}{3} \)\( (1 \times 2)+(2 \times 3)+(3 \times 4)=\frac{3 \times 4 \times 5}{3} \)\( (1 \times 2)+(2 \times 3)+(3 \times 4)+(4 \times 5)=\frac{4 \times 5 \times 6}{3} \)並求出\( (1 \times 2)+(2 \times 3)+(3 \times 4)+(4 \times 5)+(5 \times 6) \)的值
化簡:(i) +7 + 1 - 3 + 4 -2 - 5 + 7 - 2 + 1 -6 + 5(ii)+2 - 3 + 2 -5 + 1 - 3 + 8 - 4 + 3