首页 > 编程语言 >程序设计训练3.11数码管

程序设计训练3.11数码管

时间:2024-09-01 13:51:29浏览次数:15  
标签:数字 -- 3.11 数码管 int str 程序设计 输入

程序设计训练3.11数码管

【问题描述】

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

【思路说明】

首先要了解题目中的 “液晶数码管用七笔阿拉数字表示的十个数字,把横和竖的一 个短划都称为一笔 ” 具体是什么,如上图,其实这道题可以直接列举每一个数字通过只加或只减几笔可以转变成的数字,这是最好理解的方法了。列举完之后,这道题其实已经完成了一半,这道题中选择用字符串,是因为很简便,下面代码可以很明显的看出这种方法的优点。

将上面我们找出的可以转变的对应数字存到字符串中,只需要截取输入的相邻的两个字符,与前面的字符对照,看是否存在即可。若每个字符串都存在,输出"YES",否则,"NO"。

下面是可以相互转换的数字:

0--1,7,8
1--0,3,4,7,8,9
2--8
3--1,7,8,9
4--1,9
5--6,8,9
6--5,8
7--0,1,3,8,9
8--0,1,2,3,5,6,7,9
9--1,3,4,5,7,8 

【代码如下】

#include <iostream>
using namespace std;
int main()
{
	string s="01,07,08,10,13,14,17,18,19,28,31,37,38,39,41,49,56,58,59,65,68,70,71,73,78,79,80,81,82,83,85,86,87,89,91,93,94,95,97,98";
	//将可以相互转换的数字存储进字符串中 
	int n;
	string str;
	while(cin>>n)
	{
		str.clear();
    //每次循环都要清除一下 str  
		if(n==-1)break;
		str.push_back((n+'0'));
	//要将单个数字变成字符存储进 str,通过 +'0'实现 
		int a,sum=0;
		for(int i=0;i<9;i++)
		{
			cin>>a;
			str.push_back((a+'0'));
		//将输入的数字全部以字符形式存储进 str中 
		}
		for(int i=0;i<9;i++)
		{
			string ss=str.substr(i,2);//substr()是字符截取函数 
			//遍历,将每两个相邻的字符截取下来 
			if(s.find(ss)!=s.npos)sum++;
		//如果在 s中找到了ss,说明这两个相邻的数字可以转化 
			else
			{
				cout<<"NO"<<endl;
				break; 
			}
		}
		 if(sum==9)cout<<"YES"<<endl;
		 //说明这九个数字,每两个相邻都可以转化 
	}
}

标签:数字,--,3.11,数码管,int,str,程序设计,输入
From: https://blog.csdn.net/wcj_______/article/details/141554620

相关文章

  • 并行程序设计基础——组通信(3)
    目录一、组归约二、归约并散发三、扫描四、π值计算五、不同类型归约操作的对比六、不正确的组通信方式七、MINLOC和MAXLOC八、用户自定义归约操作九、小结    前两节我们介绍了组通信中常用的一对多、多对一以及多对多接口调用,本节继续对其余组通信操作进......
  • C程序设计(潭浩强教授版)精选程序题
    目录(一)顺序程序设计部分(二)选择程序设计部分 (三)循环程序设计部分 (四)数组处理数据部分(一)顺序程序设计部分1. 使用getchar读入两个字符,并分别用putchar和printf函数输出。解题思路:明确putchar和getchar的用法。#include<stdio.h>intmain(){ //使用getchar读入......
  • 一本通题讲解:2059:【例3.11】买笔
    ​ 【题目描述】期末来临了,班长小Q决定将剩余班费xx元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为66元、55元和44元。小Q想买尽量多的笔(鼓励尽量多的同学),同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方案。【输入......
  • C语言程序设计:链表删除相关结点
        创建一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。1.声明结构体类型结构体类型structStudent,包含成员学生学号(整型)、学生姓名(字符数组)、性别(字符型)、年龄(整型),next结构体指针。声明全局变量n......
  • 目录PyCharm Community Edition、python3.11、pythonProject之间的关系
    PyCharmCommunityEdition类型:PyCharmCommunityEdition是由JetBrains公司提供的免费、开源的集成开发环境(IDE)。用途:它专门为Python开发设计,提供了代码编辑、运行、调试、测试等功能。特点:包括智能代码补全、代码分析、图形化界面设计、版本控制集成等高级功能。Pyt......
  • C语言程序设计-实现三(N)子棋游戏
    画自己喜欢的画,别停笔小艺术家。实现三子棋:test.c //测试游戏的逻辑#include"game.h"//自己的头文件voidmenu(){ printf("*****************************\n"); printf("******1.play0.exit******\n"); printf("*****************************\n&quo......
  • Python 3.11 从入门到实战1(环境准备)
            本篇文章是python3.11的学习开篇,我们的目标是:通过这一套资料学习下来,获得python基础学习与实例、实践相结合,使我们完全掌握python。并做到独立完成项目开发的能力。    今天的谈论的比较简单,也是后续学习的基础。python安装和工具pycharm的安装。pyth......
  • C程序设计语言(第2版·新版)练习题1-10
    练习1-10 编写一个将输入复制到输出的程序,并将其中的制表符替换为\t,把回退符替换为\b,把反斜杠替换为\\。这样可以将制表符和回退符以可见的方式显示出来。#include <stdio.h>#include <conio.h>int main(int argc, char *argv[]){    (void)argc;    (void......
  • 【有源码】基于python的国内地震数据可视化分析与预测系统hadoop项目hive计算机程序设
    注意:该项目只展示部分功能,如需了解,文末咨询即可。本文目录1.开发环境2系统设计2.1设计背景2.2设计内容3系统展示3.1功能展示视频3.2页面页面4更多推荐5部分功能代码1.开发环境开发语言:Python采用技术:K-means算法数据库:MySQL开发环境:PyCharm2系统......
  • Python3.11二进制AI项目程序打包为苹果Mac App(DMG)-应用程序pyinstaller制作流程(App
    众所周知,苹果MacOs系统虽然贵为Unix内核系统,但由于系统不支持N卡,所以如果想在本地跑AI项目,还需要对相关的AI模块进行定制化操作,本次我们演示一下如何将基于Python3.11的AI项目程序打包为MacOS可以直接运行的DMG安装包,可以苹果系统中一键运行AI项目。MacOs本地部署AI项目首先确......