1813. M进制数问题
1813. M进制数问题
Constraints
Time Limit: 1 secs, Memory Limit: 32 MB
Description
试用 C++的类来表示一般进制数。
给定 2 个n位m进制整数A和B,计算m进制数整数P = A / B (向下取整)与 Q = A % B的值。
Input
输入包含多个测试点。第一行为一个整数T,表示测试点数。
对于每个测试点第 1 行是进制 m 。第 2 行和第 3 行分别给出 m 进制整数 A 和 B。
所有 m 进制数的10进制表示均不超出int范围。
Output
对于每个测试点,第一行输出 m 进制数整数 P = A / B 的值,第二行输出 Q = A % B 的值。
Sample Input
1
16
29FA5
7
Sample Output
5FF3
0 /************************************************************************************************************
#include<iostream>
using namespace std;
int map(char s){
return s-'A'+10;
}
void change(int n, int p){
int s[65];
int c;
int m=0;;
if(n==0) cout<<0;
while (n!=0)//数制转换,结果存入数组s[m]
{
c=n%p;
n=n/p;
m++;s[m]=c; //将余数按顺序存入数组s[m]中
}
for(int k=m;k>=1;k--)//输出转换后的序列
{
if(s[k]>=10) //若为十六进制等则输出相对应的字母
cout<<(char)(s[k]+55);
else //否则直接输出数字
cout<<s[k];
}
cout<<endl;
}
int main(){
int n;
cin>>n;
while(n--){
int a;
cin>>a;
string s,ss;
int c=0;
cin>>s>>ss;
for(int i=0;i<s.length();i++){
if(s[i]>='0'&&s[i]<='9'){
c = a*c + (s[i]-'0');
}
else{
c = a*c + map(s[i]);
}
//cout<<c<<"#####"<<endl;
}
int cc=0;
for(int i=0;i<ss.length();i++){
if(s[i]>='0'&&ss[i]<='9'){
cc = cc*a + (ss[i]-'0');
}
else{
cc = cc*a + map(ss[i]);
}
//cout<<cc<<"******"<<endl;
}
int t = c/cc;
int p = c%cc;
//cout<<"t="<<t<<endl;
//cout<<"p="<<p<<endl;
change(t,a);
change(p,a);
}
return 0;
}
1813. M进制数问题的更多相关文章
- [转]as3 算法实例【输出1 到最大的N 位数 题目:输入数字n,按顺序输出从1 最大的n 位10 进制数。比如输入3,则输出1、2、3 一直到最大的3 位数即999。】
思路:如果我们在数字前面补0的话,就会发现n位所有10进制数其实就是n个从0到9的全排列.也就是说,我们把数字的每一位都从0到9排列一遍,就得到了所有的10进制数. /** *ch 存放数字 *n n ...
- CF459C Pashmak and Buses (构造d位k进制数
C - Pashmak and Buses Codeforces Round #261 (Div. 2) C. Pashmak and Buses time limit per test 1 seco ...
- [codevs1157]2^k进制数
[codevs1157]2k进制数 试题描述 设r是个2k 进制数,并满足以下条件: (1)r至少是个2位的2k 进制数. (2)作为2k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ...
- noip2006 2^k进制数
设r是个2k进制数,并满足以下条件: (1)r至少是个2位的2k进制数. (2)作为2k进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后,则q的总位数不超过w ...
- c++描述将一个2进制数转化成10进制数(用到初始化栈,进栈,入栈)
/* c++描述将2进制数转化成10进制数 问题,1.初始化栈后,用new,不知道delete是否要再写一个函数释放内存, 还是在哪里可以加上delete 2.如果栈满了,我要分配多点空间,我想的办法 ...
- 关于不同进制数之间转换的数学推导【Written By KillerLegend】
关于不同进制数之间转换的数学推导 涉及范围:正整数范围内二进制(Binary),八进制(Octonary),十进制(Decimal),十六进制(hexadecimal)之间的转换 数的进制有多种,比如 ...
- NOIP2006 2k进制数
2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换 ...
- 4位bcd数转换为2进制数
DATA SEGMENTBUF DW 1234HBUF1 DW ? ;2进制数放到buf1内存单元DATA ENDSCODE SEGMENTASSUME CS:CODE ...
- P1066 2^k进制数
传送门 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进 ...
随机推荐
- C++中extern关键字用法小结
总结C++中关于extern关键字的用法. 1.变量的生明和定义中 C++语言支持分离式编译机制,该机制允许将程序分割为若干个文件,每个文件可被独立编译.为了将程序分为许多文件,则需要在文件中共享代码 ...
- Ubuntu 命令大全
一.文件目录类 1.建立目录:mkdir 目录名 2.删除空目录:rmdir 目录名 3.无条件删除子目录: rm -rf 目录名 4.改变当前目录:cd 目录名 (进入用户home目录:cd ~:进 ...
- c++面试题
转自http://blog.csdn.net/jingxuewang110/article/details/6789557/ 1.new.delete.malloc.free关系 delete会调用对 ...
- python生成透时图片and 写文字
import Image from get_png import getpng def transparent(infile): #open png,covert it into 'RGBA mode ...
- Oracle 命令行导出表
exp userid=帐号/密码 tables=(TOWN,YIZHI,一带一路企业) file=C:\Users\casm\Desktop\3tabs.dmp
- Android Dex文件格式(一)
dex是Android平台上(Dalvik虚拟机)的可执行文件, 相当于Windows平台中的exe文件, 每个Apk安装包中都有dex文件, 里面包含了该app的所有源码, 通过反编译工具可以获取到 ...
- Qt之QMutex
概述 QMutex 类使得线程之间可序列化,文档中的描述为provides access serialization between threads 它被设计的初衷是用来保护一个对象.数据结构.代码段 ...
- PTA Sort Three Distinct Keys
Suppose you have an array of N elements, containing three distinct keys, "true", "fal ...
- Hibernate 注解的用法以及说明
1.类级别注解 @Entity 映射实体类 @Table 映射数句库表 @Entity(name="tableName") - 必须,注解将一个类声明为一个实体be ...
- C#中的线程(二) 线程同步基础
1.同步要领 下面的表格列展了.NET对协调或同步线程动作的可用的工具: 简易阻止方法 构成 目的 Sleep 阻止给定的时间周期 Join 等待另一个线程 ...