求水仙花数问题,为什么代码输出的结果是13?

水仙花数是指一个三位数,它的每个位上的数字的三次幂之和等于它本身


#include<iostream>
using namespace std;
int main()
{
    int num =100;
    do {
        num++;
    } while (num < 1000);
    int a = 0;
    int b = 0;
    int c = 0;
    a = num % 10;
    b = num / 10 % 10;
    c = num / 100;
    if (num=a^3+b^3+c^3)
    {
        cout << num << endl;
    }
    system("pause");
    return 0;

        
}

判断的放在循环里面,还有判断相等是两个==

/ 是求商,%是求余
int num =100;
do {
num++;
} while (num < 1000);
这里得到999
a = num % 10; 这里是求余等于1
b = num / 10 % 10; 这里也是等于1
c = num / 100; 求商,等于9
3次三次幂 以后不应该是1+1+729=731的么?

if (num=a^3+b^3+c^3) 判断应该用==号

判断语句错了 =是赋值 ==是等于

判断相等是 ==
而且^在C/C++里是 位异或 运算符
要求3次幂cmath 库里的pow(a, 3);

应该是这样:

if (num == (pow(a, 3) + pow(b, 3) + pow(c, 3)))