求100-1000内3的倍数且个位上的数、十位上的数、百位上的数,的立方之和要等于这个百位数.

我想问这个求出的值是不是只有一个
他们给我的要求是

  1. 百位数(也就是3位数)
  2. 3的倍数
  3. 在100-1000之间
  4. 个位上的数、十位上的数、百位上的数,的立方之和要等于这个百位数.

#include 
#include 
using namespace std;
int main(){

    int a[3];
    int b;
    
    for(int i = 100;100<=i && i<1000 ;i++){
        
        a[0] = i%10;    //求个位的数
        a[1] = i/10%10; //求十位的数
        a[2] = i/100;    //求百位的数
        b = pow(a[0],3) + pow(a[1],3) +  pow(a[2],3);
        
            
        if(i % 3 == 0 && i == b ){  //i%3求是不是3的倍数  i==b 求个,十,百的立方之和等于这个数
            
            cout<<"百位数"<2] <<"  十位数"<1]<<"  个位数"<0]<<"  该数为"<< i<

我想知道我有什么问题,还是他们看错了

望采纳

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    // 枚举 100 到 1000 之间的所有数
    for (int i = 100; i <= 1000; i++)
    {
        // 如果这个数不是 3 的倍数,则跳过
        if (i % 3 != 0)
        {
            continue;
        }

        // 计算个位上的数、十位上的数、百位上的数
        int ones = i % 10;
        int tens = i / 10 % 10;
        int hundreds = i / 100;

        // 计算立方之和
        int sum = pow(ones, 3) + pow(tens, 3) + pow(hundreds, 3);

        // 如果立方之和等于这个百位数,则输出这个数
        if (sum == hundreds)
        {
            cout << i << endl;
        }
    }

    return 0;
}

谁说代码有问题啊?没看明白
后面半拉是水仙花数,还要是3的倍数,水仙花数一共4个,153,370,371,407。其中只有153是3的倍数