C语言·水仙花
前言说明实现思路流程图水仙花·代码·有注释水仙花·代码结语 前言说明
提前确定系数的值(代码中默认为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