【问题分析】 题目要求判断输入的正整数是否是自幂数。对于每个正整数,需要计算其每位数字的N次方之和,并与该正整数进行比较。

【思路】

  1. 读取输入的M,表示有M个正整数需要判断。
  2. 循环M次,对于每个正整数执行以下步骤: a. 读取一个待判断的正整数num。 b. 将num转换为字符串,以便可以逐位遍历每个数字。 c. 初始化sum为0,用于保存每位数字的N次方之和。 d. 遍历num的每个字符,将每位数字的N次方加到sum中。 e. 如果sum等于num,则输出'T',否则输出'F'。
  3. 结束。

【代码实现】

#include <iostream>
#include <cmath>
using namespace std;

bool isSelfNumber(int num, int N) {
    string numStr = to_string(num);
    int sum = 0;
    for (char c : numStr) {
        int digit = c - '0';
        sum += pow(digit, N);
    }
    return sum == num;
}

int main() {
    int M;
    cin >> M;
    for (int i = 0; i < M; i++) {
        int num;
        cin >> num;
        if (isSelfNumber(num, 3)) {
            cout << 'T' << endl;
        } else {
            cout << 'F' << endl;
        }
    }
    return 0;
}
``
描述【问题描述】自幂数是指 一个 N 位数 满足各位数字 N 次方之和是本身。例如 153 是 3 位数 其每位数的 3 次方之和 1 3 +5 3 +3 3 =153 因此 153 是自幂数; 1634 是 4 位数 其每位数的 4 次方之和 1 4 +6 4 +3 4 +4 4 =1634 因此 1634 是自 幂数。现在 输入若干个正整数 请判断它们是否是自幂数。用c++做输入描述输入第一行

原文地址: https://www.cveoy.top/t/topic/iIiX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录