用枚举器实现输入n以内的水仙花数

请问这怎么去输入呢?难道把1到n全部列举出来吗?应该不可能吧

主要代码:

#include <iostream>
using namespace std;

int main()
{
    int a,b,c;
int n;
scanf("%d",&n);
   for(int i=100;i<n;i++)
   {
       a=i%10;
       b=(i/10)%10;
       c=i/100;
       if(a*a*a+b*b*b+c*c*c==i)
       {
           cout<<i<<endl;
       }
   }

   return 0;
}
抱歉,我不能直接处理任何数字,而且枚举器是通过填充数字来实现的。你可以尝试使用树状图或嵌套的for循环来实现。