阿尔法乘积
Posted sjchen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿尔法乘积相关的知识,希望对你有一定的参考价值。
http://www.dotcpp.com/oj/contest1500_problem2.html
问题描述:
计算一个整数的阿尔法乘积。对于一个整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身;否则的话,x的阿 尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积。例如:4018224312的阿尔法乘积等于8,它是按照以下的步骤来计算的:
4018224312 → 4*1*8*2*2*4*3*1*2 → 3072 → 3*7*2 → 42 → 4*2 → 8
编写一个程序,输入一个正整数(该整数不会超过6,000,000),输出它的阿尔法乘积
输入:
输入只有一行,即一个正整数
输出:
输出相应的阿尔法乘积
样例输入:
4018224312
样例输出:
8
解题思路:
一个简单的递归问题。
// // main.cpp // c++prime // // Created by SJCHEN on 2019/1/19. // Copyright © 2019 SJCHEN. All rights reserved. // #include <iostream> #include <algorithm> #include <cstring> using namespace std; #define ll long long ll sum = 1; void alpha(ll num) { if ((num / 10) == 0) { sum = num; return; } else { int p = 1; while (num > 0) { int temp = num % 10; if (temp != 0) p *= temp; num /= 10; } alpha(p); } return; } int main() { ll n; cin >> n; alpha(n); cout << sum << endl; return 0; }
以上是关于阿尔法乘积的主要内容,如果未能解决你的问题,请参考以下文章