高精度进位制转换,Poj(1220)
转自ACdream。
#include <stdio.h>
#include <string.h>
#include <stdlib.h> #define MAXSIZE 60000 char in[MAXSIZE];
int oldbase,newbase;
int a[MAXSIZE],b[MAXSIZE],r[MAXSIZE]; int getNum(char c)
{
if(c >= '' && c <= '') return c - '';
if(c >= 'A' && c<= 'Z' ) return c - 'A' + ;
return c - 'a' + ;
} char getChar(int i)
{
if(i >= && i <= ) return i + '';
if(i >= && i <= ) return i - + 'A';
return i - + 'a';
} void chToNum()
{
a[] = strlen(in);
for(int i=;i<=a[];i++)
{
a[i] = getNum(in[i-]);
}
} void alter()
{
while(a[] >= )
{
int i,t = ;
for(i=;i<=a[];i++)
{
t = t * oldbase + a[i];
b[ ++b[] ] = t / newbase;
t %= newbase;
}
r[ ++r[] ] = t;
b[] = a[];
for(i = ; i <= b[] && !b[i]; i++) ;
for(a[] = ; i <= b[]; i++) a[ ++a[] ] = b[i];
memset(b,,sizeof(b));
}
} void print()
{
printf("%d %s\n%d ",oldbase,in,newbase);
while(r[]>=)
{
printf("%c",getChar(r[ r[]-- ]));
}
printf("\n\n");
} int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
while(n--)
{
scanf("%d %d %s",&oldbase,&newbase,in);
chToNum();
alter();
print();
}
}
return ;
}
高精度进位制转换,Poj(1220)的更多相关文章
- poj1220:高精度进制转换模板题
今天撸3708 一直奇怪的re 就先放下了,写这个题的过程中学习了一个高精度进制转换,用这个模板写了1220 记录一下: #include <iostream> #include < ...
- 高精度进制转换(poj1220)
常规短除法原理 高精度进制转换是对于特别大的数字来说的,当数字特别大时,难以进行除法和取余的操作,此时通过字符串模拟的办法可以解决. #include <iostream> #includ ...
- java高精度进制转换
POJ1131 由于本题只有小数部分(整数部分均为0),故在进制转换的之后只能自己手写转换方法了. 8进制转换10进制的方法为,以0.75为例,应是7*8^-1 + 5*8^-2.所以呢,可以 ...
- POJ 1220 高精度/进制转换
n进制转m进制,虽然知道短除法但是还是不太理解,看了代码理解一些了: 记住这个就好了: for(int k=0;l; ){ for(int i=l ; i>=1 ; i--){ num[i - ...
- poj3708:函数式化简+高精度进制转换+同余方程组
题目大意 给定一个函数 找出满足条件 等于 k 的最小的x m,k,d已知 其中 m,k 很大需要使用高精度存储 思路: 对 函数f(m)进行化简 ,令t=ceil( log(d,m) ) 可以得 ...
- The Moronic Cowmpouter(负进位制转换)
http://poj.org/problem?id=3191 题意:将一个整型的十进制整数转化为-2进制整数. #include <stdio.h> #include <algori ...
- 高精度的N进制转换模板(转K神)
/* 高精度进制转换 把oldBase 进制的数转化为newBase 进制的数输出. 调用方法,输入str, oldBase newBase. change(); solve(); output(); ...
- POJ 1220 NUMBER BASE CONVERSION(较复杂的进制转换)
题目链接 题意 : 给你一个a进制的数串s,让你转化成b进制的输出. A = 10, B = 11, ..., Z = 35, a = 36, b = 37, ..., z = 61,0到9还是原来的 ...
- POJ 1220 大数字的进制转换,偷下懒,用java
题意为进制转换,Java的大数类就像是作弊 import java.math.BigInteger; import java.util.Scanner; public class Main { pub ...
随机推荐
- python 格式化时间含中文报错: 'locale' codec can't encode character '\u5e74'
执行下面代码报错: UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: Illegal ...
- php数组·的方法-数组排序
/* * * 数组排序函数*/ //asort() 数组元素值升序排序 //arsort() 降序 $arr7=array(1,23,65,34,3,2,3,34,453,54,456,65,5); ...
- 转 RMAN-20005: target database name is ambiguous
发生的这个错误的由于: 在RMAN CATALOG中,register了一个name叫test的数据库,后来这个库被我搞坏了.就重建了一个test的数据库,名称没有更改,又重新register到RMA ...
- Nvelocity中格式化金钱和日期
//格式化金钱( 9,999.00)function formatCurrency(num) { num = num.toString().replace(/\$|\,/g, ''); ...
- java编程--01介绍日期的比较
引子:平时开发常常需要对时间进行格式化,进行比较,进行加减计算.最常用的类不外乎:SimpleDateFormat,Calendar,Date,DateTimeStamp等.下面想对java中的日期编 ...
- Java基础06-条件选择语句
1.switch多分支结构 import java.util.Scanner; public class Test1{ public static void main(String[] args){ ...
- Huawei English Corner
Keywords Descriptions FWIW For what it's worth(不管结果怎样) ASAP As Soon As Possible(尽快) FYI For ...
- (转)python 列表与元组的操作简介
python 列表与元组的操作简介 原文:https://www.cnblogs.com/QG-whz/p/4782809.html 阅读目录 列表 list函数 列表的基本操作 列表方法 元组 tu ...
- python的面向对象的特性(继承、封装、多态)
创建自已对象就python非常核心的概念,事实上,python被称为面向对象语言,本章会介绍如何创建对象.以及面向对象的概念:继承.封装.多态. 多态: 可对不同类的对象使用同样的操作. 封装:对外部 ...
- 《nginx 二》深入理解nginx的各项配置
Nginx应用场景 1.http服务器.Nginx是一个http服务可以独立提供http服务.可以做网页静态服务器. 2.虚拟主机.可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机. 3. ...