codeforces1143B Nirvana(贪心)

简介: codeforces1143B题解(贪心)

给出n,求1到n每个数字的每一位乘积的最大值

/*
 * codeforces1143B Nirvana 
 * Created by hao on 2019/4/14.
 * 给出n,求1到n每个数字的每一位乘积的最大值
 */
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string>
#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <deque>
using namespace std;

#define ll long long
int n,d=1,ans;
int main(){
    string a;
    cin>>a;
    n=a.size();
    //没有第一位,只有n-1位9的时候 特殊样例1000,不写下面这种情况会错
    ans=pow(9,n-1);
    //乘尽可能多的9 样例390 循环里的数字分别是 390 299 389 39(-1)
    for (int i=0;i<n;i++){
        //d在这里是前面位数的乘积  前面不动的情况下,当前位减1,当前位后面全为9
        ans=max(ans,(int)(d*(a[i]-'1')*pow(9,n-i-1)));
        //依次求出前面的位数的乘积
        d=d*(a[i]-'0');
    }
    //最后d得到的值是原始数据每位相乘的乘积
    cout<<max(ans,d)<<endl;
}
目录
相关文章
|
JavaScript Java 应用服务中间件
【JavaEE进阶】 SpringBoot配置⽂件
【JavaEE进阶】 SpringBoot配置⽂件
|
11月前
|
前端开发 Unix Linux
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
本文详细介绍了 `electron-builder` 在 Linux 平台上如何打包 Electron 应用程序,涵盖了 AppImage、Flatpak、Snap 等多种格式的打包原理和具体实现。文章从初始化 `LinuxPackager` 到创建各种目标格式的包,详细解析了每个步骤的代码逻辑和关键方法,帮助开发者更好地理解和使用 `electron-builder` 进行 Linux 应用的打包。
668 2
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
|
存储 运维 容灾
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(3)
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(3)
357 0
|
存储 SQL 关系型数据库
|
数据采集 存储 自然语言处理
Python爬虫与数据可视化:构建完整的数据采集与分析流程
Python爬虫与数据可视化:构建完整的数据采集与分析流程
Gym 102394 I. Interesting Permutation(DP)
【7月更文挑战第3天】
83 7
|
存储 关系型数据库 MySQL
PolarDB-X V2.3 集中式和分布式一体化开源发布
本文主要介绍PolarDB-X V2.3 集中式和分布式一体化开源。
|
Python Perl
LabVIEW调用Perl和Python脚本
LabVIEW调用Perl和Python脚本
119 2
|
缓存 JavaScript 算法
🚀Svelte原理和进阶看这篇就够了🚀1
🚀Svelte原理和进阶看这篇就够了🚀
|
存储 架构师 安全
架构师成长之路(一)
架构师成长之路(一)
270 1