什么是水仙花数?
水仙花数是一个三位数,其每个位上的数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
方法一:
#include<stdio.h>
int main()
{
int g = 0;
for (int i = 100; i <= 999; i++)
{
int result = 0;
int c = i; /* c=100 */
while (c)
{
g = c % 10; /* 得到个位数 */
result = result + g * g * g; /* 使用那个个位数乘3次加到result变量里 */
c /= 10; /* 这里就跟整数逆序很像,不但去得到个位数,最后去掉个位数,直到那个数为0;下面写到整数逆序*/
}
if (result == i)
{
printf("%d ", i);
}
}
return 0;
}
输出:
整数逆序代码:
#include<stdio.h>
int main()
{
///假设4位数整数逆序
int n = 0;
printf("请输入值:");
scanf("%d", &n); ///假设n=123
do
{
printf("%-2d", n % 10); /*得到个位数*/
n /= 10; /*去掉个位数*/
} while (n);
return 0;
}
方法二:
#include<stdio.h>
int main()
{
int g = 0;
int s = 0;
int b = 0;
for (int i = 100; i <= 999; i++)
{
g = i % 10; /*得到个位数*/
s = i / 10 % 10; /*得到十位数*/
b = i / 100; /*得到百位数*/
if (g * g * g + s * s * s + b * b * b == i)
{
printf("%-5d",i);
}
}
return 0;
}
输出: