




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章数制转换问题3.1相邻数字的基数等比:确定进制3.2相邻数字的基数不等比:skew数练习题
解决数制转换问题时,如果所给的数值不是用十进制表示的,一般用一个字符型数组来存放。数组的每个元素分别存储它的一位数字。然后按位转换求和,得到十进制表示;再把十进制表示转换成所求的数制表示。转换的结果也用一个字符型数组表示,每个元素表示转换结果的一位数字。第三章数制转换问题确定进制写一段程序读入三个整数p、q和r,然后确定一个进制B(2<=B<=16)使得p*q=r。如果B有很多选择,输出最小的一个。如果没有合适的进制,则输出0
输入数据输入有T组测试样例。T在第一行给出。每一组测试样例占一行,包含三个整数p、q、r。
输出要求对于每个测试样例输出一行。该行包含一个整数,即使得p*q=r成立的最小的B。如果没有合适的B,则输出0。
解题思路选择一个进制B,按照该进制将被乘数、乘数、乘积分别转换成十进制。然后判断等式是否成立。使得等式成立的最小B就是所求的结果。分别用一个字符型数组存储p、q、r的各位数字符号。先以字符串的方式读入p、q、r,然后按不同的进制将它们转换成成十进制数,判断是否相等。逐一试探法,注意一些实现的细节。确定进制
#include<stdio.h>#include<string.h>longb2ten(char*x,intb){
intret=0;
int
len=strlen(x);for(inti=0;i<len;i++){if(x[i]-'0'>=b)return-1;ret*=b;ret+=x[i]-'0';}return(long)ret;}确定进制本程序只能解决2到9进制与十进制的转换#include<stdio.h>#include<string.h>longb2ten(char*x,intb){
intret=0;
int
len=strlen(x);for(inti=0;i<len;i++){if(x[i]-'0'>=b&&x[i]<='9')return-1;if(x[i]>='A'&&x[i]-'A'+10>=b)return-1;ret*=b;if(x[i]<='9')ret+=x[i]-'0';elseret+=x[i]-'A'+10;}return(long)ret;}
确定进制确定进制voidmain(){intn;charp[8],q[8],r[8];longpAlgorism,qAlgorism,rAlgorism;
scanf("%d",&n);while(n--){
scanf("%s%s%s",p,q,r);
strupr(p);strupr(q);strupr(r);//小写转成大写
for(intb=2;b<=16;b++){
pAlgorism=b2ten(p,b);
qAlgorism=b2ten(q,b);
rAlgorism=b2ten(r,b);if(pAlgorism==-1||qAlgorism==-1||rAlgorism==-1)continue;if(pAlgorism*qAlgorism==rAlgorism){printf("%d\n",b);break;}}if(b==17)printf("0\n");}}skew数在skewbinary表示中,第k位的值xk表示xk*(2k+1-1)。每个位置上的数字可能是0或1,最后面一个非零位可以是2,例如10120(skew)=1*(25-1)+0*(24-1)+1*(23-1)+2*(22-1)+0*(21-1)=31+0+7+6+0=44。前十个skew数是0、1、2、10、11、12、20、100、101以及102(分别表示0到9)问题:输入一个skew数,输出对应的十进制数
解题思路
skew数的相邻位上,基数之间没有等比关系。计算每一位的基数后,再把一个skew数转换成十进制表示就很简单。对于长度为k的skew数,最后一位数字的基数为2k-1。由于转换成十进制后,n不超过231-1,因此输入skew数的最大长度不超过31。用一个整型数组base[31],依次存储skew数最末位、倒数第2位、…..、第31位的基数值。使用这个数组,把每个skew数转换成对应的十进制数。skew数
#include<stdio.h>#include<string.h>intmain(){inti,k,base[31],sum;charskew[32];base[0]=1;for(i=1;i<31;i++)base[i]=2*base[i-1]+1;while(1){
scanf("%s",skew);if(strcmp(skew,"0")==0)break;sum=0;k=strlen(skew);
for(i=0;i<strlen(skew);i++){k--;sum+=(skew[i]-'0')*base[k];}
printf("%d\n",sum);}
return0;}skew数2i+1-1=2*(2i-1)+1任意进制求和实验题六十进制到N(2-16
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版石材施工合同大全:范本与深度解读
- 二零二五版抖音平台短视频内容审核与合规合作协议
- 2025年度宅基地使用权转让及配套基础设施建设合同
- 二零二五年度汽车商业险融资担保协议
- 二零二五版物流仓储智能管理系统建筑工程施工框架协议
- 广告牌维修工程施工合同书(2025版)
- 家庭新房装修合同2025年
- 公司业务保密协议2025年
- 工程追加合同范本2025年
- 合伙股份协议书范本2025年
- 2025年保密知识在线学习测考试试题及答案指导
- 农村家庭农场蔬菜种植合同
- 导游技能高考题目及答案
- 中国专用车行业发展前景预测及投资战略研究报告
- 2025年浙江省金华市金华十校物理高一第二学期期末学业质量监测试题含解析
- 2025年高中教师(数学学科)招聘考试测试卷及答案(共三套)
- 烹饪职业道德课件
- 烤烟栽培技术课件
- 2025至2030中国一次性拖鞋行业市场深度研究及发展前景投资可行性分析报告
- (高清版)DB32∕T 5133-2025 电动工具安全风险评估规范
- 露天矿急救自救互救培训
评论
0/150
提交评论