zoukankan      html  css  js  c++  java
  • codeforces #549 div2 B

    题意::

      输入一个数n,找出1->n中各位上的数的乘积最大值

    思路::

      要求这个最大值,显然是9肯定比较好但并不最优因为还要兼顾其他位上的数,例 27 (显然27比19要更优)

      那就应该决策一下哪种是最优的

         init(t)表示t的各位数乘积

         1 init (n/10-1)*9

         2)(n%10)*init(n/10);

      详情见代码::

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define ll long long
     4 const int maxn=1e5+5;
     5 int ma[maxn];
     6 int init(int x)
     7 {
     8     if(x<10){return max(1,x);}
     9     return max(x%10*init(x/10),init(x/10-1)*9);
    10 }
    11 int main()
    12 {
    13     int n;
    14     scanf("%d",&n);
    15     printf("%d
    ",init(n));
    16     return 0;
    17 }

    若有不足之处请见谅!!!

    纵使单枪匹马,也要勇闯天涯
  • 相关阅读:
    camp训练day2
    LCA板子题
    牛客多校第一场
    P1063 能量项链 区间DP
    64. Minimum Path Sum
    46. Permutations
    216. Combination Sum III
    62. Unique Paths
    53. Maximum Subarray
    22. Generate Parentheses
  • 原文地址:https://www.cnblogs.com/sj-gank/p/11468122.html
Copyright © 2011-2022 走看看