华为OD机考 - 水仙花数 Ⅰ(2025B卷 100分)

java 复制代码
import java.util.*;
public static Integer get(int count,int c){
    if(count<3||count>7){
        return -1;
    }
    //存储每位数的最高位......最低位
    int[] arr =new int[count];
    List<Integer> res = new ArrayList<>();
    for(int i=(int) Math.pow(10,count-1);i<(int) Math.pow(10,count);i++){
        getArr( i,arr);
        int sum = 0;
        for(int j = 0;j<arr.length;j++){
            sum+= Math.pow(arr[j],arr.length);
        }
        if(sum == i){
            res.add(i);
        }
    }
    //System.out.println(res);
    if(res.size()<c){
        return res.get(res.size()-1)*c;
    }
    return res.get(c);
}

public static int[] getArr(int i,int[] arr){
    int count = 0,j=arr.length;
    while(count<arr.length){
         arr[count] = i/ ((int) Math.pow(10,j-1));
         i = i- arr[count]* ((int) Math.pow(10,j-1));
         j--;
         count++;
    }
    return arr;
}

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    // 注意 hasNext 和 hasNextLine 的区别
    while (in.hasNextLine()) { // 注意 while 处理多个 case
        int count = in.nextInt();
        int c = in.nextInt();
        System.out.println(get(count, c));
    }
}
相关推荐
sin_hielo17 小时前
leetcode 3047
数据结构·算法·leetcode
天赐学c语言17 小时前
1.17 - 排序链表 && 虚函数指针是什么时候初始化的
数据结构·c++·算法·链表·leecode
一条大祥脚17 小时前
一题N解 两种分块|四维莫队|容斥+二维莫队|希尔伯特排序莫队|zorder排序莫队
数据结构·c++·算法
无限码力17 小时前
华为OD机试双机位C卷 - 快递投放问题 (JAVA & Python & C++ & JS & GO)
华为od·华为od机考·华为od机试·华为od机试双机位c卷·华为od上机考试真题·华为od机考真题·华为od-快递投放问题
Remember_99317 小时前
【数据结构】二叉树:从基础到应用全面解析
java·数据结构·b树·算法·leetcode·链表
2501_9403152617 小时前
蓝桥云课:分巧克力(二分查找法)
数据结构·c++·算法
漫随流水17 小时前
leetcode算法(404.左叶子之和)
数据结构·算法·leetcode·二叉树
练习时长一年17 小时前
LeetCode热题100(乘积最大子序列)
数据结构·算法·leetcode
仰泳的熊猫17 小时前
题目1109:Hanoi双塔问题
数据结构·c++·算法·蓝桥杯
闪电麦坤9517 小时前
Leecode热题100:合并区间(数组)
数据结构·算法·leecode