简洁精美源于分析透彻,构思明确、求精,逻辑练达。(1)

    xiaoxiao2021-12-14  22

    /*用户输入100~999999范围之内的任意数(如果不是此范围,则报错),判断是否是自方幂数,用户可以反复输入判断直到不需要为止。自方幂数: 一个n位正整数如果等于它的n个数字的n次方和,该数称为n位自方幂数 123=1的3次方+2的3次方+3的3次方?*/ int 范围 = 10, 位 = 位数(范围), 和 = 0, 判断 = 范围; do { 和 += 乘方(判断 % 10, 位); 判断 /= 10; if (!判断) { if (和 == 范围) printf_s("自方幂数=%d\n", 范围); 判断 = ++范围; 位 = 位数(范围); 和 = 0; } } while (999999999 >= 范围); int 乘方(int 数, int 次){ int 幕 = 数; while (--次) 幕 *= 数; return 幕; } int 位数(int 数){ int 位 = 1; while (数 /= 10) ++位; return 位; return 数 >= 10 && 数 < 100 ? 2 : 数 >= 100 && 数 < 1000 ? 3 : 数 >= 1000 && 数 < 10000 ? 4 : 数 >= 10000 && 数 < 100000 ? 5 : 数 >= 100000 && 数 < 1000000 ? 6 : 数 >= 1000000 && 数 < 10000000 ? 7 : 数 >= 10000000 && 数 < 100000000 ? 8 : 数 >= 100000000 && 数 < 1000000000 ? 9 : 数 >= 0 && 数 < 10 ? 1 : 0; }

    转载请注明原文地址: https://ju.6miu.com/read-970972.html

    最新回复(0)