1 条题解

  • 0
    @ 2026-10-18 18:26:39

    G2004 [GESP202306 二级] 自幂数判断 题解

    知识点:数字处理、乘方、多组数据。

    解题思路

    将数字读作字符串,位数为L,对每个数位d计算d的L次方并求和,比较是否等于原数。

    为什么正确

    每一位的贡献恰为自幂数定义中的一项,求和比较与定义等价。

    易错点

    指数是当前数字的位数,不固定为3;幂采用整数循环乘法避免浮点误差。

    复杂度

    每个数字时间O(L²),空间O(L)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int n;
        cin>>n;
        while(n--) {
            string s;
            cin>>s;
            long long v=0;
            for(char c:s) {
                long long z=1;
                for(int j=0;j<(int)s.size();j++)z*=c-'0';
                v+=z;
            }
            cout<<(v==stoll(s)?"T":"F")<<"\n";
        }
    }
    

    说明

    本题解为配套教学整理,非官方题解。复杂度按本页参考实现计算,题库使用8个自行生成的测试点。

    • 1

    信息

    ID
    642
    时间
    1000ms
    内存
    512MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者