用C语言实现10行数据,每行有10个整数,每个为四位整数,请你求出它们的乘积的末尾有多少个零?
时间: 2024-03-26 12:41:12 浏览: 111
判断阶乘末尾有几个零
好的,这是一个更具挑战性的问题!以下是我的解答:
```c
#include <stdio.h>
int main() {
int nums[10][10] = {{1000,2000,3000,4000,5000,6000,7000,8000,9000,1000},
{1000,9000,8000,7000,6000,5000,4000,3000,2000,1000},
{1000,3000,5000,7000,9000,2000,4000,6000,8000,1000},
{1000,8000,6000,4000,2000,9000,7000,5000,3000,1000},
{1000,4000,7000,1000,3000,6000,9000,2000,5000,8000},
{1000,7000,4000,1000,8000,5000,2000,9000,6000,3000},
{1000,5000,9000,4000,8000,3000,7000,2000,6000,1000},
{1000,6000,2000,8000,4000,1000,7000,3000,9000,5000},
{1000,7000,3000,9000,5000,2000,8000,4000,1000,6000},
{1000,5000,1000,6000,2000,7000,3000,8000,4000,9000}};
int i, j, zero_cnt = 0;
long long product = 1;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
product *= nums[i][j];
}
}
while (product % 10 == 0) {
zero_cnt++;
product /= 10;
}
printf("乘积末尾有 %d 个零。\n", zero_cnt);
return 0;
}
```
这个程序与上一个程序非常相似,唯一的区别是我们将每个整数都改为了四位数。为了方便起见,我们将所有整数都设置为 $1000$ 的倍数,这样我们就可以避免处理小数点的问题。
需要注意的是,由于乘积非常大,我们仍然需要将 `product` 定义为 `long long` 类型,以确保计算结果的正确性。
希望我的回答能够帮到你!
阅读全文