思路:简单题,打个表就行(当然也可以直接存数,但是小菜鸟的太懒了),代码如下
#include<bits/stdc++.h> using namespace std; int arr[20]; int num = 0; void cal() { arr[num++]=153; for(int i = 154; i <= 999 ; i++) { int a,b,c; a=i/100; b=i%100/10; c=i%10; if(i==(a*a*a+b*b*b+c*c*c)) arr[num++] = i; } for(int i = 1001; i <= 2000 ; i++) { int a,b,c,d; a=i/1000; b=i%1000/100; c=i%100/10; d=i%10; if(i==(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)) {arr[num++] = i;break;} } } int main() { cal(); int m; cin>>m; for(int i = 0 ; i < num; i++) { if(arr[i]>=m) {cout<<arr[i]<<endl;break;} } }
如果哪里有问题的希望大家指出来呀,毕竟我也只是个小菜鸟呢。