知乎笔试题
数字键盘输入的数
需要对题目中的数字键盘建模,这里浪费了一点时间,虽然最后做出来了,但是笔试时间已经过了,放到这里给大家参考参考吧,这个题目开始真的无从下手,对数据结构还是不够熟系
#include <iostream>
using namespace std;
int main()
{
int number;
int b[10 + 1];
int i;
bool n[10][10] = { { 1, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, //0
{ 0, 1, 1, 0, 1, 0, 0, 0, 0, 0 }, //1
{ 0, 1, 1, 1, 0, 1, 0, 0, 0, 0 }, //2
{ 0, 0, 1, 1, 0, 0, 1, 0, 0, 0 }, //3
{ 0, 1, 0, 0, 1, 1, 0, 0, 0, 0 }, //4
{ 0, 0, 1, 0, 1, 1, 1, 0, 1, 0 }, //5
{ 0, 0, 0, 1, 0, 1, 1, 0, 0, 1 },
{ 0, 0, 0, 0, 1, 0, 0, 1, 1, 0 },
{ 1, 0, 0, 0, 0, 1, 0, 1, 1, 1 },
{ 0, 0, 0, 0, 0, 0, 1, 0, 1, 1 },
};
cin >> number;
for (i = 0; number > 0; i++) {
b[i] = number % 10;
number /= 10;
}
for (i -= 1; i > 0; i--) {
a: if (n[b[i]][b[i - 1]]) {
cout << b[i];
}
else {
b[i-1]++;
goto a;
}
}
cout << b[i] << endl;
return 0;
}
Written on April 17, 2018