数码管
来源:其他 ★ 1000
本题活力0.31按难度、完成结果与训练证据估算
算法如山行则将至
题目描述
判断数字排列是否满足相邻数字笔画差仅加或仅减。
思考与重做
王梓豪的同题记录 · 1 条
- 王梓豪 · 2026-09-01本次记录最后更新 2026.9.1
完成结果:未记录
直接打表
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int pre[10][10] = {
// 0 1 2 3 4 5 6 7 8 9
{0, 0, 1, 1, 1, 1, 1, 0, 0, 1}, // 0
{0, 0, 1, 0, 0, 1, 1, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 1, 1, 1, 0, 1}, // 2
{1, 0, 1, 0, 1, 1, 1, 0, 0, 0}, // 3
{1, 0, 1, 1, 0, 1, 1, 1, 0, 0}, // 4
{1, 1, 1, 1, 1, 0, 0, 1, 0, 0}, // 5
{1, 1, 1, 1, 1, 0, 0, 1, 0, 1}, // 6
{0, 0, 1, 0, 1, 1, 1, 0, 0, 0}, // 7
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // 8
{1, 0, 1, 0, 0, 0, 1, 0, 0, 0} // 9
};
int a[10];
while (cin>>a[0]&&a[0]!=-1)
{
for (int i=1;i<10;i++)
{
cin>>a[i];
}
bool flag=true;
for (int i=0;i<9;i++)
{
if (pre[a[i]][a[i+1]])
{
flag=false;
break;
}
}
if (flag)
cout<<"YES\n";
else
cout<<"NO\n";
}
return 0;
}