首页 > 其他分享 >4.16趣味百题第十题

4.16趣味百题第十题

时间:2023-04-16 21:24:28浏览次数:48  
标签:百题 object temp 第十 int decimal 4.16 char num

一 问题描述

输入一个M进制的数x,实现对x向任意的一个非M进制的数的转换。

二 设计思路

利用进制转化的基数与权进行转化。可以先把当前数转化为十进制,接着转化为为别的进制。

利用数字与字符的转化实现不同进制的数字存储。

三 流程图

四 代码实现(c++)

#include<iostream>
using namespace std;
#define Max 101 //限定数组最大长度
int char_to_num(char ch); //返回字符对应的数字
char num_to_char(int num); //返回数字对应的字符
long source_to_decimal(char temp[],int source);
//返回由原数转换成的十进制数
int decimal_to_object(char temp[],long decimal_num,int object);
//返回转换成目标进制的数组长度
void output(char temp[],int length); //将字符数组逆序输出
int main(){
int source; //存储原来的进制
int object; //存储目标进制
int length; //存储转化后的数组长度
long decimal_num; //存储转换成的十进制数
char temp[Max]; //存储待转化的数值 和转化后的数值
int flag=1; //是否结束程序
while(flag)
{
cout<<"转换前的数是:";
cin>>temp;
cout<<"转换前的进制是:";
cin>>source;
cout<<"转换后的进制是";
cin>>object;
cout<<"转换后的数值是:";
decimal_num=source_to_decimal(temp,source);
length=decimal_to_object(temp,decimal_num,object);
output(temp,length);
cout<<"继续请输入1,否则输入0";
cin>>flag;
}
}
int char_to_num(char ch)
{
if(ch>='0'&&ch<='9')
return ch-'0'; //0~9
else
return ch-'A'+10;//大于10的数字
}
char num_to_char(int num)
{
if(num>=0&&num<=9)
return (char)('0'+num-0);
else
return (char)('A'+num-10);
}
long source_to_decimal(char temp[],int source)
{
long decimal_num=0;
int length;
int i;
for(i=0;temp[i]!='\0';i++);
length=i;
for(i=0;i<length-1;i++)
decimal_num=(decimal_num*source)+char_to_num(temp[i]);
return decimal_num;
}
int decimal_to_object(char temp[],long decimal_num,int object)
{
int i=0;
while(decimal_num)
{
temp[i]=num_to_char(decimal_num%object);
decimal_num=decimal_num/object;
i++;
}
temp[i]='\0';
return i;
}
void output(char temp[],int length)
{
int i;
for(i=length-1;i>=0;i--)
cout<<temp[i];
cout<<endl;
}

标签:百题,object,temp,第十,int,decimal,4.16,char,num
From: https://www.cnblogs.com/galileo9527/p/17323941.html

相关文章

  • 4.16每日总结
      今天完成了数据库表的大致构建。  昨天完成了人脸识别接口的调用,和界面构建的大致代码。   遇见的问题,匹配用户操作流程的数据表结构应该是什么样的?如何和团队数据库不同表之间的连接?......
  • 2023.4.16每日会议
    昨天做了什么:完成了饼状图和比例listview遇到了哪些问题:对饼状图的使用不知道今天准备做什么:尝试将数据库迁移到官方服务器 ......
  • 4.16网格布局GridLayout
    网格布局支持多行多列的表格排列。网格布局默认从左往右、从上到下排列,它新增了两个属性:columnCount属性,它指定了网格的列数,即每行能放多少个视图;rowCount属性,它指定了网格的行数,即每列能放多少个视图;......
  • 2023.4.16周报
    本周总结:学了一些DP的优化套路大方向:动态规划小专题:斜率优化DP、四边形不等式优化DP题目完成情况:16 ......
  • 2023.04.16 - TS编译之后的JS不具备校验功能
    TypeScript编译后的JavaScript文件并不具备类型检查的功能,因为JavaScript语言本身是动态类型、弱类型的,在运行时无法推断变量的类型,只能在编译时推断。而将TypeScript文件编译成JavaScript文件时,会把TypeScript中的类型声明和类型检查都去掉,只保留JavaScript代码,所以......
  • 建民打卡日记4.16
    一、问题描述某人从1990年一月一日开始“三天打鱼两天晒网”,问某天以后是打鱼还是晒网?二、设计思路1.输入日期2.求1990年一月一日到该日期天数3.对天数求余,根据余数输出“打鱼”或“晒网”三、程序流程图四、代码实现#include<iostream>usingnamespacestd;intrunY......
  • 2023.4.16
    1#include<iostream>2usingnamespacestd;3//设计圆类和点类,判断点和圆的关系4classPoint5{6public:7voidsetX(intx)8{9m_X=x;10}11intgetX()12{13returnm_X;14}15voidsetY(inty)......
  • 第十四届蓝桥杯省赛C++B组--接龙序列
    接龙序列我们称序列中\(a_i\)的首位数字恰好是\(a_{i-1}\)的末尾数字,这样的序列叫做接龙序列,比如12233557,所有长度为1的整数序列都是接龙序列,现在给定一个长度为\(n\)的序列\(a\),请你计算最少从中删除多少个数,可以使得剩下的序列是接龙序列题解:\(DP\)根据题目我们可以转......
  • kettle从入门到精通 第十二课 kettle java代码过滤记录、利用Janino计算Java表达式
    1、下图通过简单的示例讲解了根据java代码过滤记录和利用Janino计算Java表达式两个组件。   2、根据java代码过滤记录1)步骤名称:自定义2)接收匹配的行的步骤(可选):下面条件(java表达式)执行结果为true时流转的步骤3)接收不匹配的行的步骤(可选):下面条件(java表达式)执行结果......
  • 亚信科技AntDB数据库荣膺第十二届数据技术嘉年华(DTC 2023)“最具潜力数据库”大奖
    近日,亚信科技AntDB数据库产品在第十二届数据技术嘉年华(DTC2023)峰会上斩获“2022年度最具潜力数据库”大奖。亚信安慧副总裁张桦先生受邀参会,并发表了《AntDB数据库通信行业核心系统应用与创新》的主题演讲,分享了AntDB数据库在大规模数据管理项目上的实战经验,讲述了AntDB在“超融合......