题目:
给定一个数字 N,当它满足以下条件的时候返回 true:
把原数字旋转180°以后得到新的数字。
如 0, 1, 6, 8, 9 旋转 180° 以后,得到了新的数字 0, 1, 9, 8, 6 。
2, 3, 4, 5, 7 旋转 180° 后,得到的不是数字。
易混淆数字 (confusing number) 就是一个数字旋转180°以后,得到和原来不同的数字,且新数字的每一位都是有效的。
题目链接:易混淆数
C++:
class Solution {
public:
bool confusingNumber(int N) {
long cnt = 10;
int N_f = 0;
map<int,int> m{
{0, 0},{1, 1},{6, 9},
{8, 8},{9, 6}
};
int temp = 0;
int via = N;
while(via){
temp = via%10;
via /= 10;
if(m.count(temp)){
N_f = cnt * N_f + m[temp];
}
else
return false;
}
if(N == N_f)
return false;
else
return true;
}
};
? 没参加,补一下题