遍历m到n记录i,计算出i的百位j、十位k和个位l,如果满足i等于j、k、l的立方和则输出i并记一个标记,如果循环完没有标记则输出no.
#include <stdio.h> #include <iostream> #include <math.h> using namespace std; void fun(int m, int n) { bool rst = false; for(int i=m;i<=n;i++) { int j = (i/100)%10; int k = (i/10)%10; int l = i%10; if(i == pow(j,3)+pow(k,3)+pow(l,3)) { cout << i << " "; rst = true; } } if(rst == false) { cout << "no" << endl; }else { cout << endl; } } int main() { int m,n; while(scanf("%d%d",&m,&n) != EOF) { fun(m,n); } return 0; }