蓝桥杯2015-省赛-C/C++-A组3题

题目
奇妙的数字

小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。
你能猜出这个数字是多少吗?

请填写该数字,不要填写任何多余的内容。

代码

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int all[15];
 5 int cnt2;
 6 int cnt3;
 7 void init(){
 8      for(int i=0;i<15;i++){
 9          all[i]=0;
10      }
11 }
12 void depart(int num,int &cnt){
13      while(num!=0){
14          all[cnt]=num%10;
15          num/=10;
16          cnt++;
17      }
18 }
19 int judge(int len){
20      if(len>10){
21          return 1;
22      }else if(len<10){
23          return 2;
24      }else if(len==10){
25          sort(all,all+len);
26          for(int i=1;i<10;i++){
27              if(all[i]-all[i-1]!=1){
28                  return 3;
29              }
30          }
31          return 4;
32      }
33 }
34 int main(){
35      for(int n=10;n<1000;n++){
36          cnt2=0;
37          init();
38          depart(n*n,cnt2);
39          cnt3=cnt2;
40          depart(n*n*n,cnt3);
41          if(judge(cnt3)==4){
42              cout<<"n:"<<n<<" n*n:"<<n*n<<" n*n*n:"<<n*n*n<<endl;//n:69 n*n:4761 n*n*n:328509 
43          }else if(judge(cnt3)==1){
44              break;
45          }
46          
47      } 
48 }
posted @ 2020-01-19 17:29  Mem_Ocean  阅读(166)  评论(0)    收藏  举报