前言说明实现思路流程图水仙花·代码·有注释水仙花·代码结语
前言说明提前确定系数的值(代码中默认为3)。输入一个数,求出每位的y次方的总和。判断是否等于你输入的数。
如果是则为水仙花数。
将输入的数;个位单独提出算; 从十位开始;输入的数/10;使其为个位;在%10;得出此数; 百位;输入的数/100;使其位个位;在%10;得出此数; 千位;输入的数/1000;使其位个位;在%10;得出此数; (以此类推)即可得出每位的数 再将每次得出每位的数的y次方相加;得出最后的总值。流程图
暂无
水仙花·代码·有注释#include水仙花·代码#include #define y 3 int main(int argc, char* argv[]) { int value_1; int value_2=1; int value_3 = 1; int value_4 = 0; int sum_1 = 0; printf("请输入你要判断水仙花的数:"); scanf_s("%d", &value_1); do { value_3=value_3*10; value_4++; } while (value_1 / value_3); sum_1 = pow(value_1 % 10, y); for (value_3 = 1; value_3 < value_4; value_3++) { value_2 = value_2 * 10; sum_1 = sum_1 + pow(value_1 / value_2 % 10,y); } if (sum_1 == value_1) { printf("n%d经过每位数的%d次方后的总值是其本身n", value_1, y); printf("所以%d是一个水仙花数n",value_1); } else { printf("n%d经过每位数的%d次方后的总值是%dn", value_1, y, sum_1); printf("所以%d不是一个水仙花数n", value_1); } return 0; }
#include结语#include #define y 3 int main(int argc, char* argv[]) { int value_1; int value_2=1; int value_3 = 1; int value_4 = 0; int sum_1 = 0; printf("请输入你要判断水仙花的数:"); scanf_s("%d", &value_1); do { value_3=value_3*10; value_4++; } while (value_1 / value_3); sum_1 = pow(value_1 % 10, y); for (value_3 = 1; value_3 < value_4; value_3++) { value_2 = value_2 * 10; sum_1 = sum_1 + pow(value_1 / value_2 % 10,y); } if (sum_1 == value_1) { printf("n%d经过每位数的%d次方后的总值是其本身n", value_1, y); printf("所以%d是一个水仙花数n",value_1); } else { printf("n%d经过每位数的%d次方后的总值是%dn", value_1, y, sum_1); printf("所以%d不是一个水仙花数n", value_1); } return 0; }
编程新手。此代码有错误的或者有意见的,欢迎致信!
QQ邮箱:2787485199@qq.com



