【编程题目 |100分】水仙花数 Ⅰ【2021 H1,H2, 2022 Q1 考试题】


时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

64bit IO Format:%lld


本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,

编码后请点击”保存并调试“按钮进行代码提交。


题目描述

水仙花数

所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。

例如153是水仙花数,153是一个3位数,并且153 = 1^3 + 5^3 + 3^3。

输入描述

第一行输入一个整数n,表示一个n位的正整数。n在3到7之间,包含3和7。

第二行输入一个正整数m,表示需要返回第m个水仙花数。

输出描述

返回长度是n的第m个水仙花数。个数从0开始编号。

若m大于水仙花数的个数,返回最后一个水仙花数和m的乘积。

若输入不合法,返回-1

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

3 0

输出

153

说明

153是第一个水仙花数

示例2 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

9

1

输出

-1

说明

9超出范围


C++


#include <bits/stdc++.h>

using namespace std;

static int getCalcuteNum(int a, int b)
{
    int result = 1;
    for (int i = 0; i < b; i++) {
        result *= a;
    }
    return result;
}

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA


import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class WaterFlower {
    public static void main(String[] args) {
        calculate();
    }

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法一


n = int(input())
m = int(input())
num = 0

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看


Python解法二


N = 6
M = -1
MaxLen = -1

if 3 <= N <= 7:
    Lists = list()

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看