1.奇怪的捐赠

地产大亨 Q 先生临终的遗愿是:拿出 100 万元给 X 社区的居民抽奖,以稍慰藉心中愧疚。

麻烦的是,他有个很奇怪的要求:

  1. 100 万元必须被正好分成若干份(不能剩余)。每份必须是 7 的若干次方元。比如:1 元, 7 元, 49 元,343 元,...

  2. 相同金额的份数不能超过 5 份。

  3. 在满足上述要求的情况下,分成的份数越多越好!

请你帮忙计算一下,最多可以分为多少份?

public class Main {
    public static void main(String[] args) {
        // 将1000000转换为7进制字符串
        String str = Integer.toString(1000000, 7);
        
        // 计算七进制表示中各位数字之和
        int totalParts = 0;
        for (int i = 0; i < str.length(); i++) {
            totalParts += str.charAt(i) - '0'; // 将字符转换为数字
        }
        
        System.out.println(totalParts);
    }
}

知识点:

1000000 转换成七进制数有且仅有一个,所以转成七进制数甚至不用考虑单个位置上会超过 5 ,不然这道题就无解了。1000000 转成七进制是 11333311 。

Integer.toString(value, radix) 是 Java 中 Integer 类的一个静态方法

  • 第一个参数 1000000 是要转换的十进制数值

  • 第二个参数 7 是目标进制(基数)

  • 返回值是一个字符串,表示该数字在指定进制下的表示

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐