C 练习实例13 - 水仙花数

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

#include<iostream>
using namespace std;

//思路:所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。

void isShuixianhua(int n)
{
	int g, s, b;//个、十、百位
	b = n / 100;
	s = (n - 100 * b) / 10;
	g = n - 100 * b - 10 * s;
	if (b * b * b + s * s * s + g * g * g == n)
		cout << n << ' ';
	return;
}

int main()
{
	for (int i = 100; i <= 999; i++)
		isShuixianhua(i);
	return 0;
}

上一篇:LeetCode-153-寻找旋转排序数组中的最小值


下一篇:C语言水仙花数