| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 打印罗马字符 -> 正文阅读 |
|
[C++知识库]打印罗马字符 |
问题: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M,其对应关系如下表:
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况: I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。 你的任务是设计一个算法,将一个整数转换为罗马数字。不巧的是,此时打印机恰好发生了一些故障。它不能够打印某些字符,否则将会发生故障彻底损坏。因此,你需要将这部分字符从生成的罗马数字中剔除掉。 Input输入有两行 第一行为一个整数num,代表要转换的数,其中1 <= num <= 3999; 第二行为一个字符串,字符串中的字符不能在结果中出现,保证字符串的长度不会超过3。 Output输出为一个字符串,代表转换成的罗马数字。如果罗马数字全部不能打印,则输出空行。 Sample Input 9 Sample Output X //这题对我来说有些难度,这里我总结了一点心得,分享一下 解题思路 任务一:将正整数转化成罗马字符 任务二:筛选掉我们不需要的字符 接下来我分任务给出不同解法 主函数部分(略了) #include<stdio.h> } 方法一: void change(int num,char* sh){ 方法二: void change(int num,char* sh){
方法一: 方法二: #include<stdlib.h>//不要忘了,用malloc必备 char *del(char* sh,char* ch){ //因为sh实际是局部形式指针参数,是一个地址与原sh一样的指针,把sh的地址赋值为shf的地址并不能改变原sh 的值,从而没有意义。上面是因为在sh的原地址做出了改变,所以有意义。除了直接return,还能将形参修改成全局变量,我还不会,会了再补充。 方法三:链表法 虽然没输出,也放这了,有空再改。(主要是思想😁,将不需要元素的地址跳过) void? del(char* sh,char* ch){ |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:03:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |