Nirvana【思维+暴力优化】

Nirvana 

题目链接(点击)

Kurt reaches nirvana when he finds the product of all the digits of some positive integer. Greater value of the product makes the nirvana deeper.

Help Kurt find the maximum possible product of digits among all integers from 11 to nn.

Input

The only input line contains the integer nn (1≤n≤2⋅1091≤n≤2⋅109).

Output

Print the maximum product of digits among all integers from 11 to nn.

Examples

Input

390

Output

216

Input

7

Output

7

Input

1000000000

Output

387420489

Note

In the first example the maximum product is achieved for 389389 (the product of digits is 3⋅8⋅9=2163⋅8⋅9=216).

In the second example the maximum product is achieved for 77 (the product of digits is 77).

In the third example the maximum product is achieved for 999999999999999999 (the product of digits is 99=38742048999=387420489).

题意:

给出一个小于2e9的正整数n 要求找到从1~n 中的一个数  满足它的每位数相乘结果最大 并输出该结果

思路:

开始肯定是想直接暴力 从1~n 但明显会超时

对于每个输入的数n     例如:390

先考虑把他-1 变成389 然后再-1 变成388 、387 仔细想想根本不需要减那么多次 因为389 各位相乘肯定大于 388

同理4099 先-100 变成3999 再-100变成3899 也没必要 所以总结规律如下: 

从数n的最后一位开始 通过向前一位借1的方法 每次都把最后一位变成9  (最大值对应的数肯定会出现在这些情况里面)

例如:

390 --> 389 --> 299 --> 99

(99可以不考虑,因为前面的299 肯定大于 199)

最后把每一种情况对应的值都计算出来 取最大的

AC代码:

#include<stdio.h>
typedef long long LL;
LL sum(LL n)
{
    LL num=n,count2=0;
    char a[15];
    while(num){
        LL num1=num%10;
        num/=10;
        a[count2++]=num1+'0';
    }
    LL sum2=1;
    for(int i=count2-1;i>=0;i--){
        sum2=sum2*(a[i]-'0');
    }
    return sum2;
}
int main()
{
    LL c[15]={0,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000,10000000000};
    LL n;
    scanf("%lld",&n);
    LL maxx=sum(n),j=1;
    while(n>=0){
        while((n/c[j])%10!=9&&n>=0){
            n-=c[j];
        }
        LL num2=sum(n);
        if(num2>maxx){
            maxx=num2;
        }
        j++;
    }
    printf("%lld\n",maxx);
    return 0;
}

 

主题特色简介 新的niRvana主题包含去年reBorn主题的全部功能,并且还做了更多的改进: 主色调识别 自动根据文章特色图片识别出图片的主色调,在首页、文章分类页用最美的方式显示滚动图片。如: 【WP轻拟物niRvana主题V2.6】WordPress图片主题 国人原创轻拟物风格niRvana主题破...,三色源码网 Gutenberg专用模块 今年的新主题除了外观的变化以外,主要还是针对WordPress5做了大量优化:由于WordPress5.0引入了“Gutenberg Block Editor”(区块编辑器),在这种编辑器下,原有的“短代码”就显得非常的落后了: 短代码存在的问题:在旧的TinyMCE编辑器中,短代码往往需要手动输入和编辑,很难记忆和使用。即使开发者增加了“短代码插入按钮”,但在修改短代码参数的时候,往往还是需要手动编辑代码本身。对于普通用户,这种操作是很繁琐并且容易出错的。 块编辑器的优势:完全的可视化操作,无论是插入内容还是编辑参数,都可以可视化的操作,而无须去修改繁琐的代码。 因此本主题将原有的“短代码”全部升级成了“Gutenberg模块”,包括:小标题样式、模态框、提示框、折叠内容、内容回复可见、下载按钮、下拉菜单、站内文章链接等,极大的为用户提供了方便,例如: 【WP轻拟物niRvana主题V2.6】WordPress图片主题 国人原创轻拟物风格niRvana主题破...,三色源码网 【WP轻拟物niRvana主题V2.6】WordPress图片主题 国人原创轻拟物风格niRvana主题破...,三色源码网 【WP轻拟物niRvana主题V2.6】WordPress图片主题 国人原创轻拟物风格niRvana主题破...,三色源码网 插入提示工具: 在段落中插入提示语,鼠标悬停即可显示,就像这样。除了上方以外,还可以选择上下左右四个方向,就像这样 段落文本标记: Gutenberg默认不支持段落内部分文本设置色彩。本主题进行了扩展,可以设置文本背景、颜色等。就像这样的标记 插入提示框 方便的在文章中插入提示框,并允许选择蓝、绿、橙、红四种提示色彩 插入下载按钮 方便的在文章中插入下载按钮,并可选择是否需要访客评论后下载 插入模态框 在文章中插入基于Bootstrap的模态框,访客点击即可显示显示额外内容 自定义边栏数量 主题每个页面均预留一个边栏位置,该位置可放置多个边栏并使用tab来切换。您可以: 增加或减少边栏 定义每个边栏的图标 分配边栏在文章还是在首页显示 当文章被检测到“文章目录”时,也会自动将文章目录当做一个边栏默认展示。 文章目录(Wiki模式) 当文章中存在多个“二级”、“三级”标题时,主题将自动启用“文章Wiki模式”。 “文章Wiki模式”将自动把文章内的“二级”、“三级”标题显示为文章导航并展示在边栏中,点击边栏标题可导航到文章中的指定位置。效果如下所示: 【WP轻拟物niRvana主题V2.6】WordPress图片主题 国人原创轻拟物风格niRvana主题破...,三色源码网 海报式分享 分享时生成带二维码的海报,右键保存至本地或手机端长按保存至本地后,方便上传到各类社交网站。 UI样式 您可以轻松的在文章中插入小标题样式、模态框、提示框、折叠内容、内容回复可见、下载按钮、下拉菜单、站内文章链接等,例如: 【WP轻拟物niRvana主题V2.6】WordPress图片主题 国人原创轻拟物风格niRvana主题破...,三色源码网 已知的插件不兼容 Wechat Shop插件(迅虎网络 开发):此插件影响了WordPress REST API官方的nonce鉴权机制,而本主题需要使用WordPress的REST API这个特性(如点赞、主题设置等不刷新页面交换数据的功能)。与插件作者交流后,作者虽然知道有此问题,但表示不修改。 Wechat Social插件(迅虎网络 开发):同上。这个开发者不清楚是如何影响WP默认的REST API鉴权的。P.S.有用户单独找迅虎网络开发者好言相劝并额外给了红包,开发者单独为他进行了修改后才正常。看来是插件本身的代码问题,与主题无关。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值