zoukankan      html  css  js  c++  java
  • CodeForces 489C

    在这里插入图片描述
    题目链接

    题意:
    给出m和s找到位数为m各位上数字和为s的最大数和最小数,不要前导0,如果找不到输出-1.
    1<=m<=100,0<=s<=300.

    思路:贪心。当m*9<s时我们找不到最大值,当m>1&&s==0的时候我们找不到最小值,其他情况我们都可以找到最值。为保证值最大,我们尽量把9放在前面。为了保证值最小,我们尽量把9放在后面。首位不小于1。需要特判m == 1&&s == 0的时候。

    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            int m = sc.nextInt();
            int s = sc.nextInt();
            int[] max1 = new int[m+5];
            int[] min1 = new int[m+5];
            if(m*9<s||m>1&&s==0) System.out.print("-1 -1");
            else if(m==1&&s==0) System.out.print("0 0");
            else{
                int temp = s;
                for(int i=0;i<m;i++){
                    if(temp>9) {
                        max1[i] = 9;
                        temp -= 9;
                    }else if(temp>0){
                        max1[i] = temp;
                        temp = 0;
                    }else{
                        max1[i] = 0;
                    }
                }
                temp = s - 1;
                for(int i=m-1;i>=0;i--){
                    if(temp>9){
                        min1[i] = 9;
                        temp -= 9;
                    }else if(temp>0){
                        min1[i] = temp;
                        temp = 0;
                    }else{
                        min1[i] = 0;
                    }
                }
                min1[0] += 1;
                for(int i=0;i<m;i++) System.out.print(min1[i]);
                System.out.print(" ");
                for(int i=0;i<m;i++) System.out.print(max1[i]);
    
            }
        }
    }
    
  • 相关阅读:
    怎么看到数据库以前做过的日志?
    感觉很好的网站
    uview 滑动切换
    Flyweight享元(结构型模式)
    悟空,真的是空?
    Interpreter解释器(行为型模式)
    Proxy代理(结构型模式)
    [转]有一种爱叫索取
    Command命令(行为型模式)
    Composite组合(结构型模式)
  • 原文地址:https://www.cnblogs.com/fxzemmm/p/14847914.html
Copyright © 2011-2022 走看看