华为OD机试,case怎么都只有10%


实在想不到哪里有问题
package main.test;

import java.util.Scanner;

/**
 * 创建工号,例如 a1,aa1,aa01
 * 根据人数生成工号,求工号中数字最短长度,比如a1,数字最短为1,aa01,数字最短为01,不能全为字母或者全为数字
 * x表示人数,y表示字母数
 * 输入x(0<x<2^50-1),y(0<y<=5)
 * 输入:26 1
 * 输出:1
 * 输入:260 1
 * 输出:1
 * 输入:2600 1
 * 输出:2
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            if (x < 1) {
                break;
            }
            if (y < 1 || y > 5) {
                break;
            }
            double wordCount = Math.pow(26, y);
            int i = 0;
            double a = 0;
            while (a < x) {
                i++;
                a = wordCount * Math.pow(10, i);
            }
            System.out.println(i);
        }
    }
}


#华为#
全部评论
X的范围 64位的, java int 32位的吧。你这怎么读进去
2 回复
分享
发布于 2021-02-15 11:01
楼主~OD是什么意思哈?
1 回复
分享
发布于 2021-02-15 08:56
联想
校招火热招聘中
官网直投
几道题目啊~
点赞 回复
分享
发布于 2021-02-15 00:19
范围给出了,2个break没必要。
点赞 回复
分享
发布于 2021-02-15 08:03
你好,问下机试时可以百度查吗
点赞 回复
分享
发布于 2021-02-28 20:05
春招还有笔试啊?不是内推免笔试吗
点赞 回复
分享
发布于 2021-02-28 21:40
Scanner scanner = new Scanner(System.in);         while (scanner.hasNextBigInteger()) {             long x = scanner.nextLong();             int y = scanner.nextInt();             if (x < 1) {                 break;             }             if (y < 1 || y > 5) {                 break;             }                          double wordCount = Math.pow(26, y);             int i = 0;             double a = 0;             while (a < x) {                 i++;                 a = wordCount * Math.pow(10, i);             }             System.out.println(i);         } 用你的代码改了下取值类型
点赞 回复
分享
发布于 2022-04-16 17:26
这道题现在解了吗
点赞 回复
分享
发布于 2022-05-06 07:18

相关推荐

头像
点赞 评论 收藏
转发
3 12 评论
分享
牛客网
牛客企业服务