026.阿拉伯数字转换为罗马数字

简介: 026.阿拉伯数字转换为罗马数字
#include <stdio.h>
#define ROWS 4
#define COLS 4
int nums[ROWS][COLS]={{1000,1000,1000,1000},
             {900,500,400,100},
             {90,50,40,10},
             {9,5,4,1}};
char *roms[ROWS][COLS]={{"m","m","m","m"},
                  {"cm","d","cd","c"},
                  {"xc","l","xl","x"},
                  {"ix","v","iv","i"}};
main(int argc,char *argv[ ])
{
  int low,high;
  char roman[25];
  if(argc<2)
  { printf("Usage:roman decimal_number\n");/*运行程序需带整数参数*/
    exit(0);
  }
  high=low=atoi(argv[1]);/*将第一个参数转换成整数*/
  checknum(low);
  if(argc>2)
  {/*带两个参数*/
  high=atoi(argv[2]);
  checknum(high);
  if(low>high)
    {
      low=high;
      high=atoi(argv[1]);
    }
  }
  else
    low=1;
  for(;low<=high;low++)
  {
    to_roman(low,roman);
    printf("%d\t%s\n",low,roman);
  }
}
checknum(int val)/*检查参数合理性*/
{
  if(val<1||val>9999)
  {
    printf("The number must be in range 1..9999.\n");
    exit(0);
  }
}
to_roman(int decimal,char roman[ ])/*将整数转换成罗马数字表示*/
{
  int power,index;
  roman[0]='\0';
  for(power=0;power<ROWS;power++)
    for(index=0;index<COLS;index++)
      while(decimal>=nums[power][index])
      {
        strcat(roman,roms[power][index]);
        decimal-=nums[power][index];
      }
}
相关文章
|
机器学习/深度学习 存储 人工智能
第3章:知识表示:概述、符号知识表示、向量知识表示
第3章:知识表示:概述、符号知识表示、向量知识表示
第3章:知识表示:概述、符号知识表示、向量知识表示
|
数据采集 监控 搜索推荐
质量规则支持自定义属性,规则管理更便捷
随着企业数据治理开展到一定阶段,对质量监控规则的精细化管理诉求进一步提升,需要为质量规则配置更多属性信息以支持后续的统计的分析。Dataphin V4.0版本新增了自定义质量规则属性的能力,通过简单的配置即可实现灵活、高效的规则管理,满足多样化诉求。
453 0
|
Java 索引
SpringBoot2.3.x整合ElasticSearch7.6.2 实现PDF,WORD全文检索
本文使用SpringBoot2.3.x + ElasticSearch7.6.2 实现对PDF,WORD进行全文检索 实现了对文件内容快速搜索
1514 0
SpringBoot2.3.x整合ElasticSearch7.6.2 实现PDF,WORD全文检索
【ChatGLM】本地版ChatGPT ?6G显存即可轻松使用 !ChatGLM-6B 清华开源模型本地部署教程
【ChatGLM】本地版ChatGPT ?6G显存即可轻松使用 !ChatGLM-6B 清华开源模型本地部署教程
778 0
|
11月前
|
Java API Maven
如何使用Java开发抖音API接口?
在数字化时代,社交媒体平台如抖音成为生活的重要部分。本文详细介绍了如何用Java开发抖音API接口,从创建开发者账号、申请API权限、准备开发环境,到编写代码、测试运行及注意事项,全面覆盖了整个开发流程。
1389 10
|
编解码 JavaScript 前端开发
ThreeJs 基础学习
ThreeJs 基础学习
164 0
|
Java Maven
Mac Maven环境变量配置 zsh: command not found: mvn
Mac Maven环境变量配置 zsh: command not found: mvn
765 0
|
调度 决策智能
基于条件风险价值CVaR的微网动态定价与调度策略(matlab代码)
基于条件风险价值CVaR的微网动态定价与调度策略(matlab代码)
|
传感器
GEE——使用cart机器学习方法对Landsat影像条带修复以NDVI和NDWI为例(全代码)
GEE——使用cart机器学习方法对Landsat影像条带修复以NDVI和NDWI为例(全代码)
383 0