如何做一个无符号数识别程序
1.状态分析
我们可以把无符号数分为:整数,带小数,带指数部分三种形式。以此构建一个DFA。首先需识别输入是整数还是小数点,若是整数部分输入然后还要再循环识别一次是否有小数点,最后识别是否有指数部分,指数部分可以带有符号。
2.画出状态图
下图种d代表整数,不在状态图中的情况则表示这不是无符号数

3.构造状态矩阵
状态图种不存在的情况则标为-1
| . | E/e | +/- | d | other | |
| 0 | 3 | -1 | -1 | -1 | -1 |
| 1 | 2 | 4 | -1 | 1 | -1 |
| 2 | -1 | 4 | -1 | 2 | -1 |
| 3 | -1 | -1 | -1 | 2 | -1 |
| 4 | -1 | -1 | 5 | 6 | -1 |
| 5 | -1 | -1 | -1 | 6 | -1 |
| 6 | -1 | -1 | -1 | 6 | -1 |
4.程序实现
#include <iostream>
#include <string>
using namespace std;// 状态转换表0: . 1: e 2: + or - 3: 0-9 4: other
int state[7][5] = {{3, -1, -1, 1, -1},{2, 4, -1, 1, -1},{-1, 4, -1, 2, -1},{-1, -1, -1, 2, -1},{-1, -1, 5, 6, -1},{-1, -1, -1, 6, -1},{-1, -1, -1, 6, -1}
};
int allend[3] = {1, 2, 6}; //可以结束的状态int judge(char change) {if (change == '.') return 0;else if (change == 'E' || change == 'e') return 1;else if (change == '+' || change == '-') return 2;else if (change >= '0' && change <= '9') return 3;else return 4;
} //跳转函数int isend(int now) {for (int i = 0; i < 3; i++) {if (now == allend[i]) return 1;}return 0;
} // 判断是否为结束状态int main() {string s;while (cin >> s) {int now = 0;for (int i = 0; i < s.length(); i++) {cout << now << "->";int index = judge(s[i]);now = state[now][index];cout << now << endl;if (now == -1) break; // 发现不是无符号数}if (isend(now) == 1) cout << "yes\n";else cout << "no\n";}return 0;
}
相关文章:
如何做一个无符号数识别程序
1.状态分析 我们可以把无符号数分为:整数,带小数,带指数部分三种形式。以此构建一个DFA。首先需识别输入是整数还是小数点,若是整数部分输入然后还要再循环识别一次是否有小数点,最后识别是否有指数部分,指…...
C++初阶:C/C++内存管理
一.C/C内存分布 先来回顾一下C语言内存分区示意图如下: 代码区: 程序执行代码一般存放在代码区,字符串常量以及define定义的常量也可能存放在代码区。 常量区: 字符串,数字等常量以及const修饰的全局变量往往存放在…...
新成果展示:AlGaN/GaN基紫外光电晶体管的设计与制备
紫外光电探测器被广泛应用于导弹预警、火灾探测、非可见光通信、环境监测等民事和军事领域,这些应用场景的实现需要器件具有高信噪比和高灵敏度。因此,光电探测器需要具备响应度高、响应速度快和暗电流低的特性。近期,天津赛米卡尔科技有限公…...
Ivs+keepalived:高可用集群
Ivskeepalived:高可用集群 keepalived为lvs应运而生的高可用服务。lvs的调度器无法做高可用,keepalived这个软件就是为了实现调度器的高可用。 注意:keepalived不是专门为lvs集群服务的,也可以做其他代理服务器的高可用。 lvs的高可用集群&a…...
win10安装spark
一、进入spark下载页面 连接 Downloads | Apache Spark 二、解压下载后的.tgz文件 直接解压即可 三、运行 运行bin目录下的 spark-shell.cmd 提示 Did not find winutils.exe: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.hom…...
基于Spring Boot 的毕业生实习就业管理系统(绿色)
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Spring Boot 的毕业生实习就业管理系…...
1600*C. Remove Adjacent(贪心字符串)
Problem - 1321C - Codeforces 解析: 贪心,从z到a遍历,每次循环减去符合题意的字符。 #include<bits/stdc.h> using namespace std; signed main(){int n;string s;cin>>n>>s;for(char iz;i>a;i--){for(int j0;j<s.…...
CRC校验码2018-架构师(六十一)
以下关于串行总线的说法中,正确的是()。 串行总线一般都是双全工总线,适宜于长距离传输数据串行总线传输的波特率是总线初始化时预先定义好的,使用中不可改变串行总线是按位(BIT)传输数据的&am…...
CSS设置超出范围滚动条和滚动条样式
CSS设置超出范围滚动条和滚动条样式 效果展示 当块级内容区域超出块级元素范围的时候,就会以滚动条的形式展示,你可以滚动里面的内容,里面的内容不会超出块级区域范围。 未设置超出隐藏,显示滚动条 超出隐藏,显示滚动…...
EtherCAT从站转CclinkIE协议网关应用案例
远创智控的YC-ECT-CCLKIE网关,一款具有强大功能的ETHERCAT通讯网关。 它可以将ETHERCAT网络和CCLINK IE FIELD BASIC网络无缝连接起来。作为ETHERCAT总线中的从站,本网关可以接收来自ETHERCAT主站的数据,并将其传输到CCLINK IE FIELD BASIC网…...
腾讯云 AI 绘画:文生图、图生图、图审图 快速入门
腾讯云 AI 绘画是腾讯云推出的一款基于人工智能的图像生成和编辑产品,能够根据输入的图片或描述文本,智能生成与输入内容相关的图片,支持多样化的图片风格选择。 在本文中,我们将介绍如何使用腾讯云 AI 绘画的三项主要功能&#…...
前端项目中,强缓存和协商缓存的配置
前端缓存分为HTTP缓存和浏览器缓存 HTTP缓存(本文重点) 强缓存协商缓存 浏览器缓存 比较熟悉的 cookie,localstorage sessionstorage indexDB…或者cacheStorage 请求的缓存,如果本地有取本地的 这里主要笔记http缓存 先说总结的内容 webpack配置&am…...
【LeetCode】2. 两数相加
题目链接 文章目录 Python3方法: 模拟 ⟮ O ( n ) 、 O ( 1 ) ⟯ \lgroup O(n)、O(1)\rgroup ⟮O(n)、O(1)⟯ C Python3 方法: 模拟 ⟮ O ( n ) 、 O ( 1 ) ⟯ \lgroup O(n)、O(1)\rgroup ⟮O(n)、O(1)⟯ # Definition for singly-linked list. # cl…...
springBoot与Vue共同搭建webSocket环境
欢迎使用Markdown编辑器 你好! 这片文章将教会你从后端springCloud到前端VueEleementAdmin如何搭建Websocket 前端 1. 创建websocket的配置文件在utils文件夹下websocket.js // 暴露自定义websocket对象 export const socket {// 后台请求路径url: ,websocketCo…...
【Python】collections.Counter
Python内置模块collections中的Counter是字典子类。Counter不是字典,但很像字典。 Counter具有字典的键和值,键是各个元素,值为该元素出现的次数。 Counter相当于计数器。常用于哈希映射(哈希表)。 from collection…...
【Elasticsearch】es脚本编程使用详解
目录 一、es脚本语言介绍 1.1 什么是es脚本 1.2 es脚本支持的语言 1.3 es脚本语言特点 1.4 es脚本使用场景 二、环境准备 2.1 docker搭建es过程 2.1.1 拉取es镜像 2.1.2 启动容器 2.1.3 配置es参数 2.1.4 重启es容器并访问 2.2 docker搭建kibana过程 2.2.1 拉取ki…...
Synchronized 关键字
在Java中,线程同步使用最多的方法是使用synchronized关键字。每个Java对象都隐含有一把锁,这里称为Java内置锁(或者对象锁、隐式锁)。使用synchronized(syncObject)调用相当于获取 syncObject 的内置锁,所以可以使用内置锁对临界区代码段进行…...
Maven系列第8篇:大型Maven项目,快速按需任意构建
本篇涉及到的内容属于神技能,多数使用maven的人都经常想要的一种功能,但是大多数人都不知道如何使用,废话不多说,上干货。 需求背景 我们需要做一个电商项目,一般都会做成微服务的形式,按业务进行划分&am…...
卷积神经网络(CNN)的组成结构以及其优点
卷积神经网络(Convolutional Neural Network,简称CNN)是一种深度学习模型,主要用于处理具有网格结构的数据,如图像和视频。它的结构包含以下几个关键组件: 卷积层(Convolutional Layerÿ…...
[③ADRV902x]: Digital Filter Configuration(接收端)
前言 本篇博客主要总结了ADRV9029 Rx接收端链路中各个滤波器的配置。配置不同的滤波器系数以及不同的参数,可以对输入的数字信号灵活得做decimation处理,decimation信号抽取,就是降低信号采样率的过程。 Receiver Signal Path 下图为接收端…...
Qwen3-14B开源模型实战:跨境电商多平台产品文案批量生成
Qwen3-14B开源模型实战:跨境电商多平台产品文案批量生成 1. 跨境电商文案生成的痛点与解决方案 跨境电商运营面临的最大挑战之一,就是需要为同一款产品在不同平台(亚马逊、eBay、速卖通等)生成符合各自规范的优质文案。传统人工…...
别再傻傻分不清HIL和SIL了!用NI PXI和Simulink手把手教你搭建第一个测试环境
从零开始搭建HIL/SIL测试环境:NI PXI与Simulink实战指南 刚接触在环测试的工程师常常被各种术语搞得晕头转向——HIL、SIL、MIL,它们到底有什么区别?更重要的是,接到一个控制器测试任务时,该如何从零开始搭建测试环境&…...
2GB内存Linux系统运行Django或Flask项目会不会内存不足?
在 2GB 内存的 Linux 系统上运行 Django 或 Flask 项目,完全可行,但需要谨慎配置和监控。能否稳定运行取决于你的应用复杂度、并发量以及部署架构。 原文地址:https://blog.zestb.com/article/129805.html 以下是具体的分析和优化建议&…...
终极Übersicht小部件调试指南:10个实用工具和高效方法
终极bersicht小部件调试指南:10个实用工具和高效方法 【免费下载链接】uebersicht ˈyːbɐˌzɪt 项目地址: https://gitcode.com/gh_mirrors/ue/uebersicht bersicht是一款强大的macOS桌面小部件工具,让开发者能够在桌面上创建和运行自定义小部…...
C++ 安全子集:探讨在关键任务系统中限制部分 C++ 特性(如 RTTI)的必要性
尊敬的各位专家、各位同仁,大家好。今天,我们齐聚一堂,共同探讨一个在软件工程领域,尤其是在关键任务系统(Critical Mission Systems)开发中至关重要的话题:C 安全子集——在严苛环境下限制部分…...
MXene基单原子催化剂在电催化CO2还原中的电子结构调控与性能优化
1. MXene基单原子催化剂为何能成为CO2还原的"黑马"? 在碳中和背景下,电催化CO2还原技术就像一位"化学魔术师",能把温室气体变废为宝。而MXene材料凭借其独特的层状结构和导电性,正成为这场魔术表演的明星道具…...
终极Windows 11系统优化指南:使用Win11Debloat让你的电脑飞起来!
终极Windows 11系统优化指南:使用Win11Debloat让你的电脑飞起来! 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other change…...
Stable Yogi Leather-Dress-Collection效果展示:2.5D视角下皮衣动态褶皱与身体贴合度真实感
Stable Yogi Leather-Dress-Collection效果展示:2.5D视角下皮衣动态褶皱与身体贴合度真实感 想象一下,你是一位动漫角色设计师,需要为角色设计一套充满质感的皮衣。传统的流程需要你手绘线稿、上色、刻画光影和褶皱,整个过程耗时…...
微信聊天记录的数字档案馆:WeChatMsg实现数据永久保存与深度分析
微信聊天记录的数字档案馆:WeChatMsg实现数据永久保存与深度分析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendin…...
智能抢购京东茅台:零基础上手的成功率提升指南
智能抢购京东茅台:零基础上手的成功率提升指南 【免费下载链接】jd_maotai 抢京东茅台脚本,定时自动触发,自动预约,自动停止 项目地址: https://gitcode.com/gh_mirrors/jd/jd_maotai 在电商抢购的激烈竞争中,这…...
