在 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