博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++中将字符串转化为数字_在C和C ++中将十进制数转换为罗马数字
阅读量:2514 次
发布时间:2019-05-11

本文共 3291 字,大约阅读时间需要 10 分钟。

c++中将字符串转化为数字

Here you will get program to convert decimal number to roman numeral in C and C++.

在这里,您将获得将C和C ++中的十进制数字转换为罗马数字的程序。

How it Works?

这个怎么运作?

  • Divide the given number in the order 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 to find largest base value.

    将给定数字按顺序依次除以1000、900、500、400、100、90、50、40、10、9、5、4、1,以找到最大底值。
  • Display the corresponding roman symbol of largest base value obtained by above method in output.

    在输出中显示通过上述方法获得的最大基值的相应罗马符号。
  • Subtract the given number with largest base value to get new number.

    减去具有最大基值的给定数字以获得新数字。
  • Repeat above process with the new number until it becomes 0.

    对新数字重复上述过程,直到它变为0。
Convert Decimal Number to Roman Numeral in C and C++

Example:

例:

Decimal Number: 250

小数:250

  • Divide it in order 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 to find largest base value. Here 250 is divided by 100. The corresponding roman symbol for 100 is C.

    依次将其除以1000、900、500、400、100、90、50、40、10、9、5、4、1,以找到最大底值。 此处250除以100。100对应的罗马符号是C。
  • Subtract 250 with 100 (largest base value in previous step) to get new number i.e. 150.

    用100(上一步中的最大基值)减去250以得到新的数字,即150。
  • Again divide 150 in the order mentioned earlier. It is divided by 100, so corresponding roman symbol is C.

    再次按前面提到的顺序除以150。 它除以100,因此对应的罗马符号为C。
  • Subtract 150 with 100 to get new number i.e. 50.

    用100减去150以得到新的数字,即50。
  • Divide 50 again in the order mentioned earlier. 50 is divided by 50, so corresponding roman symbol is L.

    按照前面提到的顺序再次除以50。 50除以50,因此对应的罗马符号为L。
  • Subtract 50 with 50. The new number obtained is 0 so we stop here.

    用50减去50。获得的新数字为0,因此我们在这里停止。
  • The final roman numeral is CCL.

    最终的罗马数字是CCL

Below program implements above algorithm.

下面的程序实现上面的算法。

在C中将十进制数转换为罗马数字的程序 (Program to Convert Decimal Number to Roman Numeral in C)

#include
 void decimal2roman(int num){    int decimal[] = {1000,900,500,400,100,90,50,40,10,9,5,4,1}; //base values    char *symbol[] = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};  //roman symbols    int i = 0;     while(num){ //repeat process until num is not 0        while(num/decimal[i]){  //first base value that divides num is largest base value            printf("%s",symbol[i]);    //print roman symbol equivalent to largest base value            num -= decimal[i];  //subtract largest base value from num        }        i++;    //move to next base value to divide num    }} int main(){    printf("250 -> ");    decimal2roman(250);     printf("\n1550 -> ");    decimal2roman(1550);     printf("\n670 -> ");    decimal2roman(670);     return 0;}

Output

输出量

250 -> CCL 1550 -> MDL 670 -> DCLXX

250-> CCL 1550-> MDL 670-> DCLXX

在C ++中将十进制数转换为罗马数字的程序 (Program to Convert Decimal Number to Roman Numeral in C++)

#include
 using namespace std; void decimal2roman(int num){    int decimal[] = {1000,900,500,400,100,90,50,40,10,9,5,4,1}; //base values    char *symbol[] = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};  //roman symbols    int i = 0;     while(num){ //repeat process until num is not 0        while(num/decimal[i]){  //first base value that divides num is largest base value            cout<
";    decimal2roman(250);     cout<<"\n1550 -> ";    decimal2roman(1550);     cout<<"\n670 -> ";    decimal2roman(670);     return 0;}

Comment below if you any queries related to above program.

如果您对以上程序有任何疑问,请在下面评论。

翻译自:

c++中将字符串转化为数字

转载地址:http://hmggb.baihongyu.com/

你可能感兴趣的文章
9、接口和抽象类
查看>>
timeStamp和GMT时间的转换
查看>>
探索J2ME应用:如何用GCF通信
查看>>
jquery ajaxform上传文件返回不提示信息的问题
查看>>
实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上...
查看>>
适配器
查看>>
c#截取字符串
查看>>
VS2005中配置 ScriptManager,UpdatePanel,UpdateProgress 等AJAX控件 .
查看>>
使用logback实现http请求日志导入mongodb
查看>>
【 2017 Multi-University Training Contest - Team 9 && hdu 6162】Ch’s gift
查看>>
redis在php中的应用(Hash篇)
查看>>
Docker系列之Docker镜像(读书笔记)
查看>>
Scrapy 多url爬取、爬取post请求、更换代理ip、指定日志等级
查看>>
phpExcel实现excel文件导出
查看>>
Pandas中dataframe以及spark中rdd使用groupByKey进行合并
查看>>
简单字符串处理应避免使用正则表达式
查看>>
了解正则表达式操作符的优先级
查看>>
Spring框架集成FreeMarker
查看>>
用 async/await 来处理异步
查看>>
app开发-1
查看>>