求出0~999之间的所有“水仙花数”并输出
水仙花数:一个三位数,数的各个位上的立方和等于该数本身,例如 153=1^ 3+5^ 3+3^3
方法一: 将0-999的数依次循环进行 位数计算,自幂求和,与原数比较的三个步骤
for (i = 0; i < 1000; i++){ //计算位数int count = 1;int tmp = i;int sum = 0;while (tmp / 10){count++;tmp = tmp / 10;} //计算次方和tmp = i;while (tmp){sum += pow(tmp % 10, count);tmp = tmp / 10;} //判断if (sum == i)printf("%d ", i);}
12345678910111213141516171819方法二: 将0-999的数依次循环进行 计算每个位上的数,对每个位上的数进行相应的幂运算求和,和与原数比较的三个步骤
int i = 0;int sum = 0;printf("水仙花数是:");for (i = 0; i < 1000; i++){int tmp = i;int a = tmp / 100; //求出百位数int b = tmp % 100 / 10; //求出十位数int c = tmp % 100 % 10; //求出个位数if (a != 0) //三位数时计算和sum = (int)pow(a, 3) + (int)pow(b, 3) + (int)pow(c, 3);if (a == 0 && b != 0) //两位数时计算和sum = (int)pow(b, 2) + (int)pow(c, 2);if (a == 0 && b == 0) //一位数时计算和sum = c;if (sum == i) //判断printf("%d ", i);}
123456789101112131415161718 完整代码#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<stdlib.h> #include<math.h> int main() {int i = 0;for (i = 0; i < 1000; i++){ //计算位数int count = 1;int tmp = i;int sum = 0;while (tmp / 10){count++;tmp = tmp / 10;} //计算次方和tmp = i;while (tmp){sum += pow(tmp % 10, count);tmp = tmp / 10;} //判断if (sum == i)printf("%d ", i);}system("pause");return 0; }
1234567891011121314151617181920212223242526272829相关知识
vs水仙花数c语言代码,求水仙花数c语言代码怎么写
C语言:输出所有的水仙花数
水仙花数C语言代码优化
C语言编写水仙花数
水仙花数,C语言
C语言入门:判断水仙花数(100~999)
C语言植物大战僵尸源码分享。#c语言 #代码 #程序代码 #
打印水仙花数
c语言编程花朵,C语言花朵代码.doc
判断一个数是否为水仙花数 (C语言)
网址: 【C语言】求水仙花数(完整代码) https://m.huajiangbk.com/newsview350248.html
上一篇: 判断一个数是否为“水仙花数“,所 |
下一篇: 999】中的水仙花数 |