ALGO-104演算法訓練 阿爾法乘積(c++)
阿新 • • 發佈:2018-12-26
演算法訓練 阿爾法乘積
時間限制:1.0s 記憶體限制:512.0MB
問題描述
計算一個整數的阿爾法乘積。對於一個整數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
#include <iostream> #include <string> using namespace std; int main(int argc, char** argv) { string s; cin>>s; int m=1; for(int i=s.length()-1;i>=0;i--) if((s[i]-'0')%10) m*=(s[i]-'0'); int n=m; while(n/10){ m=n; n=1; while(m){ if(m%10) n*=m%10; m/=10; } } cout<<n<<endl; return 0; }