水仙花数 (c++)
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
tips:代码注释中的例子使用的 "="是指数学中的等于号,而不是指代码编程中的赋值号
#include<iostream>
using namespace std;
int main()
{
int num = 100 ;//定义一个最小的三位数
int a = 0; //定义个位数
int b = 0; //定义十位数
int c = 0; //定义百位数
while(num < 1000) //使用while循环,由于水仙花数是三位数,所以条件num要小于1000
{
a = num % 10; //个位数是通过取于10的余数 eg:101 % 10 = 1
b = num / 10 % 10;/*十位数是通过先整除10再取于10的余数
eg:111 / 10 % 10 = 11 % 10 = 1 */
c = num / 100; // 百位数是直接通过整除100获得 eg: 211 / 100 = 2
if( a*a*a + b*b*b + c*c*c == num) //根据水仙花数的定义使用条件选择运算
{
cout << num << endl; //输出水仙花数
}
num++; //从100开始自增到999
}
}