【蓝桥杯官网试题 - 算法提高 】P0404(模拟)
生活随笔
收集整理的這篇文章主要介紹了
【蓝桥杯官网试题 - 算法提高 】P0404(模拟)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題干:
計算一個無符號整數的阿爾法乘積。對于一個無符號整數x來說,它的阿爾法乘積是這樣來計算的:如果x是一個個位數,那么它的阿爾法乘積就是它本身;否則的話,x的阿爾法乘積就等于它的各位非0的數字相乘所得到的那個整數的阿爾法乘積。例如,4018224312的阿爾法乘積等于8,它是經過以下的幾個步驟計算出來的:
4018224312à4*1*8*2*2*4*3*1*2à3072
3072à3*7*2à42
42à4*2à8
輸入:
4018224312
輸出:
8
解題報告:
? ? emmm有個坑,n=0的時候,其他的不多說了。
AC代碼:
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair #define fi first #define se second using namespace std; const int MAX = 2e5 + 5; char s[MAX]; int all(int x) {int res = 1;while(x) {res *= x%10 == 0 ? 1 : x%10;x/=10;}return res; } int go(int x) {if(x<=9) return x;return go(all(x)); } int main() {cin>>s;int len = strlen(s);int tmp = 1;for(int i = 0; i<len; i++) tmp *= s[i] == '0' ? 1 : s[i] - '0';if(len == 1) printf("%s",s);else cout << go(tmp);return 0 ;}?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的【蓝桥杯官网试题 - 算法提高 】P0404(模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 申请信用卡不激活会怎么样 信用卡年费可能
- 下一篇: SMceMan.exe - SMceMa