2380. 阿尔法乘积
1000ms
256MB
简单
双重循环
字符串
题目描述
计算一个正整数的“阿尔法乘积”。对于一个正整数 $x$ 来说,它的阿尔法乘积计算规则如下:
1. 如果 $x$ 是一个一位数(即 $x < 10$),那么它的阿尔法乘积就是它本身。
2. 否则,$x$ 的阿尔法乘积等于“将其各位非 0 的数字相乘”得到的新整数的阿尔法乘积。
例如对于数字 $4018224312$:
- 其非零数位相乘:$4 \times 1 \times 8 \times 2 \times 2 \times 4 \times 3 \times 1 \times 2 = 3072$;
- 对 $3072$ 重复上述步骤:$3 \times 7 \times 2 = 42$;
- 对 $42$ 重复上述步骤:$4 \times 2 = 8$;
- 因为 $8$ 是个位数,所以 $4018224312$ 的阿尔法乘积为 $8$。
请编写程序,输入一个正整数,输出它的阿尔法乘积。
输入格式
- 输入只有一行,包含一个正整数 $N$ ($1 \le N \le 6,000,000$)。
输出格式
- 输出一个整数,表示输入数字的阿尔法乘积。
样例 1
输入 (Input)
3072
输出 (Output)
8
- 对于 $100\%$ 的数据:$1 \le N \le 6,000,000$。
- **算法提示**:
本题可以直接通过循环模拟解决。
1. 编写一个辅助函数,用于接收一个整数,将其非零的各数位相乘并返回其积。可利用 `% 10` 和 `/ 10` 循环拆分每个数位。
2. 在主函数中,当读入的数 $N \ge 10$ 时,不断循环调用该辅助函数,更新 $N$ 的值。
3. 当 $N < 10$ 时退出循环,此时的 $N$ 即为最终结果。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功