zoukankan      html  css  js  c++  java
  • 数码管问题(c++实现)

        描述:液晶数码管用七笔阿拉数字表示的十个数字,把横和竖的一 个短划都称为一笔,即7有3笔,8有7笔等。对于十个数字一种排列,要做到
     两相邻数字都可以由另一个数字加上几笔或减去几笔组成,但不能又加又减。比如 7→3是允许的,7→2不允许。任意输入一组数,判断是否符合上述规则。 

        输入:每行输入一个0~9的排列,数字之间用空格分隔,以-1作为输入结束

      输出:输入YES或NO

    input:

    4107395682
     3  5 1 6  2  7 9  0  4  8
    0
    output:
    YES
    NO

    分析:有这样一种思路,将每一笔表上顺序,这样每个数字就可以表示成一个字符串,如1为“35”,然后判断相邻两个是否符合规则可以用较段数字的字符串是否为较大字符串的子集来判断,如果是则符合

     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 
     5 //判断相邻两个是否可相互转化
     6 int s(string max, string min)
     7 {
     8     int n = 0;
     9     for (int i=0; i < min.size(); i++)
    10     {
    11         for (int j = 0; j < max.size(); j++)
    12         {
    13             if (min[i] == max[j])
    14                 n++;
    15         }
    16     }
    17     if (n == min.size())
    18         return 1;
    19     else
    20         return 0;
    21 }
    22 
    23 //判断函数
    24 int cal(int a[])
    25 {
    26     int k;
    27     string b[10] = { "123567", "35", "23467", "23456", "1345", "12456", "124567", "235", "1234567", "123456" };//将数码管中7话用数字1-7标记,用字符串存每个数字
    28     //逐个比较a中相邻两个
    29     for (int i = 0; i < 9; i++)
    30     {
    31         
    32         if (b[a[i]].size()>b[a[i + 1]].size())
    33             k = s(b[a[i]], b[a[i+1]]);
    34         else
    35             k = s(b[a[i+1]], b[a[i]]);
    36         if (!k)
    37             return 0;
    38     }
    39     return 1;
    40 }
    41 
    42 int main()
    43 {
    44     int a[10];
    45     while ((cin >> a[0]) && (a[0] != -1))
    46     {
    47         for (int i = 1; i < 10; i++)
    48             cin >> a[i];
    49         if (cal(a))
    50             cout << "Yes" << endl;
    51         else
    52             cout << "No" << endl;
    53     }
    54     system("pause");
    55     return 0;
    56 }
  • 相关阅读:
    maven学习(七)——使用maven构建java项目
    Java 实现word 中写入文字图片的解决方案
    postman中如何传数组
    char类型在传参时接收不到数据的原因
    Oracle一条数据多表连插
    Spring Cloud Config的配置中心使用非对称性加密
    Failed to read artifact descriptor for org.springframework.cloud:spring-cloud-starter-config:jar:unk
    如何上传文件到git
    Windows的DOS命令
    ideal的maven项目不小心remove module,如何找回
  • 原文地址:https://www.cnblogs.com/wuyoucao/p/4693354.html
Copyright © 2011-2022 走看看