确定进制

摘要:
说明6*9=42对于十进制是错误的,但对于十进制却是正确的。你的任务是编写一个程序,读入三个整数p、q和r,然后确定一个基数B,使p*q=r。如果B有很多选择,则输出最小的一个。对于十进制10,也有11*11=121。在这种情况下,应输出3。如果没有合适的基数,则输出0。输入包含三个整数p、q、r、p的行。q和r的所有位都是数字,1˂=p、q,r˂=1000000。如果没有合适的B,则输出0以使用namespacestd引用解决方案1#include2;3intturn4{5intre=0;6intg=1;7while(n!=0){8if{9return0;10}11否则{12re+=*g;13}14n=n/10;15g=克*a;16} 17返回;18} 19intmain()20{21intp,q,r,b,panduan;22intp1,q1,r1;23scanf;24panduan=0;25表示{26p1=turn(p,b);27q1=turns(q,b),28r1=turs(r,b));29而{30if{31panduan=1;32printf;33break;34}35break;36}37}38ifprintf(“0”);39返回0;40}可能是这个博客中唯一的正常问题(不是

描述

6 * 9 = 42 对于十进制来说是错误的,但是对于13进制来说是正确的。即, 6(13)* 9(13)= 42(13), 而 42(13)= 4 * 131+ 2 * 130= 54(10)

你的任务是写一段程序,读入三个整数p、q和 r,然后确定一个进制 B(2<=B<=16) 使得 p * q = r。 如果 B 有很多选择, 输出最小的一个。

例如:p = 11, q = 11, r = 121. 则有 11(3)* 11(3)= 121(3)因为 11(3)= 1 * 31+ 1 * 30= 4(10)和 121(3)= 1 * 32+ 2 * 31+ 1 * 30= 16(10)。 对于进制 10,同样有 11(10)* 11(10)= 121(10)。这种情况下,应该输出 3。如果没有合适的进制,则输出 0。

输入

一行,包含三个整数p、q、r。 p、q、r的所有位都是数字,并且1 <= p、q、r <= 1,000,000。

输出

一个整数:即使得p * q = r成立的最小的B。如果没有合适的B,则输出 0

参考题解

1 #include<cstdio>
2 using namespacestd;
3 int turn(int n,inta)
4 {
5     int re = 0;
6     int g = 1;
7     while(n != 0){
8         if(n % 10 >=a){
9             return 0;
10 }
11         else{
12             re += (n % 10)*g;
13 }
14         n = n / 10;
15         g = g *a;
16 }
17     returnre;
18 }
19 intmain()
20 {
21     intp,q,r,b,panduan;
22     intp1,q1,r1;
23     scanf("%d%d%d",&p,&q,&r);
24     panduan = 0;
25     for(b = 2;b <= 16;b++){
26         p1 =turn(p,b);
27         q1 =turn(q,b);
28         r1 =turn(r,b);
29         while(p1 && q1 && r1 && panduan == 0){
30             if(p1 * q1 ==r1){
31                 panduan = 1;
32                 printf("%d",b);
33                 break;
34 }
35             break;
36 } 
37 }
38     if(panduan == 0)    printf("0");
39     return 0;
40 }

大概是这个博客里唯一一个正常的题解了吧(并不

免责声明:文章转载自《确定进制》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java 中的监控与管理原理概述SQL语言共分为四大类下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用PHP和Python生成短链接服务的字符串ID

假设你想做一个像微博短链接那样的短链接服务,短链接服务生成的URL都非常短例如: http://t.cn/E70Piib, 我们应该都能想到链接中的E70Piib对应的就是存储长链接地址的数据记录的ID,可是这个有大小写字母和数字构成的唯一ID是怎么生成的呢,刚学编程的时候我们用的方法都试拼接一个足够唯一的字符串(比如时间戳加用户ID等等)然后再用MD5或...

Java 2进制和16进制的转换

Jave使用AES加密后的报文可能会出现乱码的情况,可以将它转化为16进制的字符串。 packagecom.test.aes; /*** * 进制转换工具类 * */ public classParseSystemUtil { /*** 将二进制转换成16进制 * * @parambuf * @retu...

【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片

在JPEG解码中对JPG图片进行了解码,解码的数据分为RGB三色,这三色数据(16进制)存放在3个文件中red.dat,green.dat,blue.dat;用matlab把这3色数据复原成图像。 这里仅对红色处理,其他两种颜色的处理方法类似。 这里解码的是一幅1080*1920的jpg图片。 red.dat文件中存放的是16进制的数据 格式如上图,这里...

Windbg实用手册

Windbg工作中用的不多,所以命令老是记不住,每次使用都要重新查命令,挺烦。 趁这次培训的机会好好测试和总结了一下,下次再用就方便多了。 在这里一起共享一下,如果有错误,请指正。 基本知识和常用命令 (1) Windbg下载地址http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx...

perl5 第二章 简单变量

第二章 简单变量  by flamephoenix 一、整型 二、浮点数 三、字符串 基本上,简单变量就是一个数据单元,这个单元可以是数字或字符串。一、整型 1、整型   PERL最常用的简单变量,由于其与其它语言基本相同,不再赘述。   例:   $x = 12345;   if (1217 + 116 == 1333) {   # statement...

表示不同文件类型的魔术数字

这里所说的表示不同文件类型的魔术数字,指定是文件的最开头的几个用于唯一区别其它文件类型的字节,有了这些魔术数字,我们就可以很方便的区别不同的文件,这也使得编程变得更加容易,因为我减少了我们用于区别一个文件的文件类型所要花费的时间。 比如,一个JPEG文件,它开头的一些字节可能是类似这样的”ffd8 ffe0 0010 4a46 4946 0001 010...