本关任务:计算正整数num的各位上的数字之积。 例如: 输入:2583 经过----(2x5x8x3) 输出:240 输入:102 经过----(1x0x2) 输出:0 输入:136 经过----(1x3x6) 输出:18
时间: 2023-05-26 16:06:03 浏览: 220
算法思路:
1. 读入正整数num;
2. 初始化变量ans为1;
3. while循环每次取num的个位数,将ans与该数字相乘后再将num除以10向下取整;
4. 当num为0时跳出循环,输出ans即可。
Python代码:
相关问题
写一个Python代码:计算正整数num的各位上的数字的积
以下是计算正整数num的各位上的数字的积的Python代码:
```python
num = int(input("请输入一个正整数:"))
product = 1
while num > 0:
digit = num % 10
product *= digit
num //= 10
print("各位上的数字的积为:", product)
```
首先,我们使用 `input()` 函数接受用户输入的正整数。然后,我们初始化变量 `product` 为 1,用于保存各个数字的积。接下来,我们使用 `while` 循环来逐个取出 `num` 的个位数字。每次循环中,我们使用取模运算符 `%` 来获取最后一位数字,然后将其乘到 `product` 中。接着,我们使用整除运算符 `//` 将 `num` 的最后一位数字舍去。当 `num` 的所有数字都被取出并乘到 `product` 中后,循环结束。最后,我们输出结果。
函数fun的功能是:计算正整数num的各位上的数字之积。例如,输入252,则输出应该是20。long fun(long num);
函数`fun`的实现如下:
```c
long fun(long num) {
long res = 1;
while (num > 0) {
int digit = num % 10;
if (digit != 0) {
res *= digit;
}
num /= 10;
}
return res;
}
```
该函数的思路是,每次取出`num`的个位数字,如果不为零,则累乘到结果中,然后将`num`除以10进行下一轮循环,直到`num`变为0。最终返回结果。例如,对于输入252,第一轮取出2,累乘到结果中,第二轮取出5,累乘到结果中,第三轮取出2,累乘到结果中,最终结果为20。