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 → stdout
输入 stdin
CtrlShiftEnter
输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字