构造数字(贪心算法)

在一个宁静的早晨, 迪迦奥特曼突然发现了一个奇特的物体。这个物体是一个来自未知星球的超级数字计算器。这个计算器拥有强大的功能, 可以计算出任何数字的结果, 甚至可以解析出数字之间的深层次联系和规律。

随着时间的推移, 迪迦奥特曼的数字能力变得越来越强大。他不仅可以快速计算出复杂的数字结果, 还可以理解数字背后的深层含义和规律。他的这种能力让他可以在战斗中更好地应对各种挑战, 因为数字和规律往往可以揭示出敌人的弱点和突破口。

现在迪迦奥特曼有一个十进制下的 N 位正整数, 但他忘记这个数的具体数值, 只记得每一位的数码之和不超过 M, 他想知道在所有可能中, 这个数最大可能是多少。即用 f(x) 表示十进制下x 每位数码之和, 例如f(114)=1+1+4=6,,给定 N,M,求最大的N 位十进制数x,满足f(x)≤M。

输入格式

第一行包括2个正整数N,M

输出格式

输出共1行,包含1个整数,表示最终答案

样例输入

3 1

样例输出

100

答案

java 复制代码
import java.util.ArrayList;
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int x = scan.nextInt();
        int M = scan.nextInt();
        ArrayList<Integer> arr = new ArrayList<>();
        while (arr.size() != x){
            if(M>9){
                arr.add(9);
                M = M - 9;
            }else{
                arr.add(M);
                M = 0;
            }
        }
        int length = arr.size();
        for(int i = 0;i < length;i++){
            System.out.print(arr.get(i));
        }
        scan.close();
    }
}

题目来源:蓝桥杯算法双周赛

相关推荐
雾削木1 小时前
mAh 与 Wh:电量单位的深度解析
开发语言·c++·单片机·嵌入式硬件·算法·电脑
__lost1 小时前
小球在摆线上下落的物理过程MATLAB代码
开发语言·算法·matlab
mit6.8243 小时前
[Lc_week] 447 | 155 | Q1 | hash | pair {}调用
算法·leetcode·哈希算法·散列表
jerry6094 小时前
优先队列、堆笔记(算法第四版)
java·笔记·算法
勤劳的牛马4 小时前
📚 小白学算法 | 每日一题 | 算法实战:加1!
算法
Epiphany.5564 小时前
基于c++的LCA倍增法实现
c++·算法·深度优先
一只码代码的章鱼5 小时前
学习笔记2(Lombok+算法)
笔记·学习·算法
jerry6095 小时前
c++流对象
开发语言·c++·算法
2301_817031656 小时前
C语言-- 深入理解指针(4)
c语言·开发语言·算法
·醉挽清风·7 小时前
学习笔记—双指针算法—移动零
c++·笔记·学习·算法