PTA基础编程题目集 7-23币值转换(C++语言实现)

发布时间:2026/9/29 1:24:09

PTA基础编程题目集 7-23币值转换(C++语言实现) 摘要本文是PTA编程题币值转换的题解涵盖题目描述、输入输出格式及C语言实现展示逐位处理数字与单位、处理中文零的财务大写转换算法。题目描述输入一个整数位数不超过9位代表一个人民币值单位为元请转换成财务要求的大写中文格式。如23108元转换后变成贰万叁仟壹百零捌元。为了简化输出用小写英文字母a-j顺序代表大写数字0-9用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为cWdQbBai元。输入格式输入在一行中给出一个不超过9位的非负整数。输出格式在一行中输出转换后的结果。注意零的用法必须符合中文习惯。输入样例8132273456900输出样例iYbQdBcScWhQdBeSfgQjB解题思路核心问题分析将数字金额转换为中文财务大写格式难点在于零的处理规则连续的多个零只需输出一个零(a)每段末尾万位、亿位等大单位前的零可以省略万位(W)和亿位(Y)作为分段单位即使该段全零有时也需保留单位算法原理逐位处理输入字符串。对每一位数字非零数字若与上一个非零数字之间隔有零位先补一个零(a)再输出数字和对应单位零数字不直接输出但在遇到万/亿位等大单位时检查该段是否有非零数字以决定是否输出单位维护last_non_zero记录上一个非零数字的位置(pos)用于判断两个非零数字间是否需要补零以及判断万/亿单位是否有效。具体计算步骤输入数字字符串s特判s“0时直接输出a”从左到右遍历每一位pos len-1-i 为当前位的位置权重个位0、十位1…非零数字若last_non_zero-pos 1则补a输出数字单位更新last_non_zero零数字若pos是4或8万/亿位且last_non_zeropos则输出单位输出结果字符串代码流程说明字符映射初始化num数组映射0-9到a-junit数组映射位置到单位输入与特判读取输入字符串若为0直接输出a遍历处理每一位计算当前位数字d和位置posd≠0时检查间隔补零→写入数字→写入单位→更新last_non_zerod0时若为分段单位(万/亿)且前面有有效数字则写入单位字符串终止与输出添加终止符’\0’后输出结果代码流程图是否否是是是否是否否是是否否开始定义num和unit映射数组输入字符串s输入是否为0输出a并结束初始化result和变量i从0开始i是否小于长度result添加终止符计算当前数字和位置当前数字非零是否需要补零写入零字符a写入数字字符位置是否大于0写入对应单位更新最近非零位置i递增当前是万或亿位前面有非零数字写入万或亿单位输出result结束解题流程图是否是是否是否否是是否否是否输入数字字符串输入是否为0输出a从左到右逐位处理取当前位和位置当前位非零与上一非零位有间隔补一个零a输出数字字符位置大于0输出对应单位记录最近非零位置还有下一位是万或亿位该段前有非零数字输出万或亿单位输出最终结果结束代码部分实现#includeiostream#includecstringusingnamespacestd;// 数字映射a代表0, b代表1, ..., j代表9charnum[]abcdefghij;// 单位映射索引0无单位(个位), 1:拾(S), 2:百(B), 3:仟(Q), 4:万(W), 5:拾(S), 6:百(B), 7:仟(Q), 8:亿(Y)charunit[]{\0,S,B,Q,W,S,B,Q,Y};intmain(){chars[20];cins;intlenstrlen(s);// 特判输入为0时直接输出aif(strcmp(s,0)0){coutaendl;return0;}charresult[100]{0};// 存储转换后的结果字符串intres_idx0;// result数组的当前写入位置intlast_non_zero-1;// 记录上一个非零数字的位置从右往左数的位数// 从左向右遍历输入的每一位数字for(inti0;ilen;i){intds[i]-0;// 当前数字intposlen-1-i;// 当前数字的位置权重个位为0十位为1...if(d!0){// 如果当前非零数字与上一个非零数字之间隔了至少一位即存在零则需要补一个零(a)// 例如101 - 百位1和个位1之间隔了十位(pos1)需要补零if(last_non_zero!-1last_non_zero-pos1){result[res_idx]num[0];}// 添加当前数字对应的字符result[res_idx]num[d];// 添加对应的单位个位pos0时不加单位if(pos0){result[res_idx]unit[pos];}last_non_zeropos;// 更新最近非零数字的位置}else{// 当前数字为0时的处理// 对于万(pos4)和亿(pos8)这样的大单位即使其中间数位为0也需要保留单位// 例如813227345中亿位后面的千万、百万等都是0但仍需输出Y(亿)if(pos%40pos0){// 只有当前面出现过非零数字当前数段有效时才输出该大单位if(last_non_zero!-1last_non_zeropos){result[res_idx]unit[pos];}}}}result[res_idx]\0;// 字符串终止coutresultendl;return0;}
延伸阅读

更多相关文章

2026/9/28 23:37:26

如何3步搞定全网资源下载?终极网络资源嗅探工具使用指南

如何3步搞定全网资源下载?终极网络资源嗅探工具使用指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否经…

2026/9/27 8:45:01

如何快速获取网盘直链:9大平台文件下载的终极解决方案

如何快速获取网盘直链:9大平台文件下载的终极解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…

2026/9/24 9:13:14

Claude Code配置DeepSeek API全攻略:从环境搭建到报错解决

1. 项目概述:当Claude Code遇上DeepSeek 最近在折腾AI编程助手,发现Claude Code这个工具确实好用,但默认的模型调用有时候不尽如人意。特别是看到DeepSeek V4发布的消息,无论是推理能力还是代码生成的性价比,都让人心动…

2026/9/29 1:24:07

MFC自绘按钮实战:高DPI圆角、状态机与工业级健壮性

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 1:24:07

Flutter纯Dart库鸿蒙化:Google Maps Web服务适配实战

接手鸿蒙(HarmonyOS NEXT)适配那会,我第一反应是先扒一遍 Flutter 项目里的依赖树,看有没有那种卡在手里根本绕不开的原生模块。结果翻到flutter_google_maps_webservices这个库的时候,松了口气:它是个纯 D…

2026/9/29 1:24:07

STM32实验室消防预警系统:嵌入式安全设计实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 1:24:07

API Key 没错,为什么换一个模型就调用失败?先检查接口类型

大模型 API 接入有一个容易误判的地方:Key 有效,不代表每个模型都接受同一个请求地址。遇到 400 错误时,先看模型支持的接口类型,再排查 Key、余额和网络。 本文用 YonshoreAPI 的公开模型信息说明这个检查方法。我参与该服务的运…

2026/9/29 1:24:07

STM32驱动16×16点阵屏原理与实战:共阳极/共阴极详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 1:19:07

Linux进程控制核心机制:fork/wait/exit深度解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/28 6:05:15

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/28 6:07:41

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 0:04:04

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

2026/9/29 0:04:04

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/28 1:59:25

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑