zoukankan      html  css  js  c++  java
  • 1012: 数码管

    1012: 数码管

    时间限制: 10 Sec  内存限制: 128 MB
    提交: 276  解决: 184
    [提交][状态][讨论版]

    题目描述

    液晶数码管用七笔阿拉数字表示的十个数字,把横和竖的一 个短划都称为一笔,即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

    提示

     

    来源

    2001289

    #include <iostream>
    using namespace std;
    bool contain(int m,int n){
     int i,j,s=0;
     string str[10] = {"123456","23","12457","12347","2367","13467","134567","123","1234567","123467"};
        int mlen = str[m].length();
        int nlen = str[n].length();
        int min = mlen<nlen?mlen:nlen;
        for(i=0;i<mlen;i++){
         for(j=0;j<nlen;j++){
          if(str[m][i]==str[n][j]) s++;
         }
        }
        if(s==min) return true;
        else return false;
    }
    int main(){
     
     int b[10],f,i;
     while(1){
      cin>>b[0];
      if(b[0]==-1) break;
      for(i=1;i<10;i++){
       cin>>b[i];
      } 
      f=1;
      for(i=0;i<9;i++){
       if((contain(b[i],b[i+1]))==0){
         f=0;
                break;
       }
      
      }
      if(f==0) cout<<"NO"<<endl;
         else cout<<"YES"<<endl;
     }
     
     return 0;
    }

  • 相关阅读:
    leetcode刷题笔记 273题 整数转换英文表示
    leetcode刷题笔记 278题 第一个错误的版本
    leetcode刷题笔记 268题 丢失的数字
    leetcode刷题笔记 264题 丑数 II
    leetcode刷题笔记 263题 丑数
    20210130日报
    20210129日报
    20210128日报
    20210127日报
    20210126日报
  • 原文地址:https://www.cnblogs.com/lchzls/p/5781474.html
Copyright © 2011-2022 走看看