题目链接:https://vjudge.net/problem/CodeForces-1143B
题意:输入一个数,求不大于这个数的每一位数的乘积之和的最大值
转自:https://blog.csdn.net/qq_43305984/article/details/89305879
#include<iostream>
using namespace std;
long long dfs(long long a)
{
if(a==0)
return 1;
if(a<10)
return a;
long long cnt1=dfs(a/10)*(a%10);//这个地方要加括号
long long cnt2=dfs(a/10-1)*9;
return max(cnt1,cnt2);
}
int main()
{
long long n;
cin>>n;
long long ans=dfs(n);
cout<<ans;
return 0;
}