• 51nod 1385 凑数字(贪心+构造)


    分析:写几个就会发现,最优的做法应该是先写1234567890,然后如果不够用,往后面依次加1、2、3……然后就可以过了,这样保证每个数字尽可能多得被用到,题解是另一种构造,原理一样,严格证明看题解。。

    题解:

     1 import java.io.*;
     2 import java.util.*;
     3 import java.math.BigInteger;
     4 public class Main {
     5     public static void main(String[] args){
     6         Scanner cin=new Scanner(System.in);
     7         String s;
     8         s=cin.next();
     9         BigInteger n=new BigInteger(s);
    10         int len=n.toString().length();
    11         BigInteger ans=new BigInteger("0");
    12         ans=BigInteger.valueOf(10*(len-1));
    13         for(int i=1;i<10;i++){
    14             if(i<s.charAt(0)-'0')
    15                 ans=ans.add(BigInteger.ONE);
    16             if(i==s.charAt(0)-'0'){
    17                 for(int j=0;j<len;j++){
    18                     if(s.charAt(j)-'0'>i||(j==len-1&&s.charAt(j)-'0'==i)){
    19                         ans=ans.add(BigInteger.ONE);break;
    20                     }
    21                     if(s.charAt(j)-'0'<i){
    22                         break;
    23                     }
    24                 }
    25                 break;
    26             }
    27         }
    28         System.out.println(ans);
    29         cin.close();
    30     }
    31 }
  • 相关阅读:
    函数详解
    print()函数知识点总结
    python基本数据类型-字符串常用操作
    2020.7.17第十二天
    2020.7.16第十一天
    2020.7.15第十天
    2020.7.14第九天
    2020.7.13第八天
    2020.7.12第七天
    2020.7.11第六天
  • 原文地址:https://www.cnblogs.com/7391-KID/p/7210587.html
Copyright © 2020-2023  润新知