#include #include #include using namespace std; int visited[10]; int main() { for (int i = 47; i <= 99; i++) { for (int i = 0; i < 10; i++) visited[i] = 0; //初始化数字状态数组 stringstream s; //用来将int 转化为string string s2, s3; s << i * i; s2 = s.str(); //s2存平方 s << i * i * i; s3 = s.str(); //s3存立方 for (int i = 0; i < s2.length(); i++) visited[s2[i] - 48] = 1; //遍历平方字符串,将此数字标记为已使用,数字的ASCII-48为数字的数值 for (int i = 0; i < s3.length(); i++) visited[s3[i] - 48] = 1; //同理 int j; for (j = 0; j < 10; j++) if (visited[j] == 0) //判断数字是否全部使用 break; if (j == 10) //如果没有跳出,则j为10,所有数字都被使用 cout << i; } return 1; }