zoukankan      html  css  js  c++  java
  • C++——数码管

    题目描述
    液晶数码管用七笔阿拉数字表示的十个数字,把横和竖的一 个短划都称为一笔,即7有3笔,8有7笔等。对于十个数字一种排列,要做到两相邻数字都可以由另一个数字加上几笔或减去几笔组成,但不能又加又减。比如 7→3是允许的,7→2不允许。任意输入一组数,判断是否符合上述规则,注意,1在右边。
    输入
    每行输入一个0~9的排列,数字之间用空格分隔,以-1作为输入结束
    输出
    输出YES或NO
    样例输入
    4 1 0 7 3 9 5 6 8 2
    3 5 1 6 2 7 9 0 4 8
    -1
    样例输出
    YES
    NO

    题解:打表(离散数学的邻接矩阵),采用邻接矩阵可以方便直接的比对两个数字是否有对应关系。

    #include <iostream>
    #include<cstdio>
    using namespace std;

    //

    int a[10][10]={{1,1,0,0,0,0,0,1,1,0},
    {1,1,0,1,1,0,0,1,1,1},
    {0,0,1,0,0,0,0,0,1,0},
    {0,1,0,1,0,0,0,1,1,1},
    {0,1,0,0,1,0,0,0,1,1},
    {0,0,0,0,0,1,1,0,1,1},
    {0,0,0,0,0,1,1,0,1,0},
    {1,1,0,1,0,0,0,1,1,1},
    {1,1,1,1,1,1,1,1,1,1},
    {0,1,0,1,1,1,0,1,1,1}};

    int main()
    {
    int n[10];
    int x;
    while(1){
    scanf("%d",&x);
    int flag=0;
    if(x==-1)
    break;
    else
    n[0]=x;
    for(int i=1;i<10;i++){
    cin>>n[i];
    }
    for(int i=0;i<9;i++){
    if(a[n[i]][n[i+1]]==0){
    flag=1;
    }
    if(flag){
    cout<<"NO"<<endl;
    break;
    }
    }
    if(flag==0)
    cout<<"YES"<<endl;
    }
    return 0;
    }

  • 相关阅读:
    day3-课堂笔记
    day2-作业及答案
    2016年11月19日一周工作知识点总结
    2016年11月19日一周工作知识点总结
    使用JDK开发WebService
    使用JDK开发WebService
    Java WebService 简单实例
    Java WebService 简单实例
    BigDecimal不整除的一个异常java.lang.ArithmeticException
    2016年11月13日周工作知识点总结
  • 原文地址:https://www.cnblogs.com/xufeng123/p/12660705.html
Copyright © 2011-2022 走看看