1.5-25:求特殊自然数

这个寒假入坑了。。我这个蒟蒻也要开始走上竞赛道路了。。感觉我是真垃圾。。
话说这题感觉自己有点傻逼。。其实也有点难吧?提高组第一题。。蒟蒻系列。。
就不要执着于从10进制变7进制和9进制然后不知道多复杂的数字顺序对调。。。。(其实后来做到有题是顺序对调)
百度了一下,有两种思路:

!这个方法有点难搞。。【思路】不用直接化七进制或九进制,先思考一下可能的七进制或九进制的三位数的范围,最小的数是七进制的(101)7,最大是九进制的(666)9,根据题意“七进制与九进制的三位数码表示顺序正好相反”进行枚举即可

!另一种:直接从9进制和7进制出发,然后推十进制,也是枚举算法。。还有就是进制范围要注意,这里9进制和7进制混合,我们取小的算,7进制,即数字范围0-6

原谅蒟蒻(来个绿帽?)表示刚开始想不通第一种最大值最小值的算法。。这里给的是我自己写的第二种。。后来才想明白。。其实是这里9进制和7进制混合,我们取小的算,7进制,即数字范围0-6,第二种也用到

#include<iostream>
using namespace std;
int main(){
int x,y,z;
for(x=1;x<7;x++){
for(y=0;y<7;y++){
for(z=0;z<7;z++){
if(x*7*7+y*7+z==z*9*9+y*9+x){
cout<<x*7*7+y*7+z<<endl<<x*100+y*10+z<<endl<<z*100+y*10+x;
return 0;
}
}
}
}
}

标签: none

添加新评论