poj2305-Basic remains(进制转换 + 大整数取模)
进制转换 + 大整数取模
一,题意:
在b进制下,求p%m,再装换成b进制输出。
其中p为b进制大数1000位以内,m为b进制数9位以内
二,思路:
1,以字符串的形式输入p,m;
2,转换:字符串->整数 十进制->b进制;
3,十进制下计算并将整形结果转换成字符串形式,并倒序储存;
4,输出。
三,步骤:
1,输入p[],m[];
2,字符串->整形 + 进制->b进制:
i,进制转换语句:m2 = m2*b + m[j]-'0';
ii,大整数取模,大整数可以写成这样的形式:
12345 = ( ( (1 * 10+2) * 10+3) * 10+4) * 10+5
如二进制数(1100)=( ( (1 * 2+1) * 2+0) * 2+0) (2表示进制数)
为避免大数计算,进制转化时顺便求模
p2 = (p2*b + p[i]-'0') % m2;
3,转换并倒序储存: ans[k++] = p2%b + '0'; p2 /= b ;
4,倒序输出
- #include<iostream>
- #include<string.h>
- using namespace std;
- const int N=; //大数位数
- int main(){
- int b; //进制数
- while(cin>>b&&b){
- char p[N] , m[N] , ans[N];
- int p2 = , m2 = ; //定义用来储存十进制的被除数、除数
- cin>>p>>m;
- for(int j= ; j<strlen(m) ; j++){ //把n进制字符串除数转换为十进制数字除数
- m2 = m2*b + m[j]-'';
- }
- for(int i= ; i<strlen(p) ; i++){ //把n进制字符串被除数转换为十进制数字被除数
- p2 = (p2*b + p[i]-'') % m2; //为避免大数计算,进制转化时顺便求模
- }
- if(!p2)
- cout<<<<endl;
- else{
- int k = ;
- while(p2){
- ans[k++] = p2%b + ''; //把10进制数 转换为 n进制字符串倒序并存入 P[] 中
- p2 /= b;
- }
- for(int i = k- ; i >= ; i--)
- cout<<ans[i];
- cout<<endl;
- }
- }
- return ;
- }
版权声明:本文为博主原创文章,未经博主允许不得转载。
poj2305-Basic remains(进制转换 + 大整数取模)的更多相关文章
- POJ 2305:Basic remains 进制转换
Basic remains Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5221 Accepted: 2203 Des ...
- cogs 2170. 大整数取模
2170. 大整数取模 ★ 输入文件:bigint.in 输出文件:bigint.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] 输入正整数n和m,输出n mo ...
- 【BZOJ】3751: [NOIP2014]解方程【秦九韶公式】【大整数取模技巧】
3751: [NOIP2014]解方程 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 4856 Solved: 983[Submit][Status ...
- hdu 4474 大整数取模+bfs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4474 (a*10+b)%c = ((a%c)*10+b%c)%c; 然后从高位开始枚举能填的数字填充, ...
- C语言关于进制转换,补码, 整数的位操作
菜单导航: 1.二进制.八进制.十进制.十六进制的相互转换 2.原码.反码.补码 3.举例证明整数在计算机内是以补码的形式存在(以负数为例) 4.整数的位操作:按位且&.或|.异或^.取反~ ...
- 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)
标识符.变量.数据类型.类型转换.进制转换.原码反码补码 标识符: java50个关键字不能做标识符,以数字开头不能做标识符(这个老是忘记写一个类名的时候) 变量: 变量分为成员变量和局部变量,注意作 ...
- POJ 1220 大数字的进制转换,偷下懒,用java
题意为进制转换,Java的大数类就像是作弊 import java.math.BigInteger; import java.util.Scanner; public class Main { pub ...
- 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符
02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...
- Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换
1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...
随机推荐
- css与js后边有?v=20160101
原文地址http://blog.csdn.net/zanychou/article/details/8813076 <span style="font-size:14px;" ...
- @import与link
本质上,这两种方式都是为了加载CSS文件,但还是存在着细微的差别. 1. 老祖宗的差别.link属于XHTML标签,而@import完全是CSS提供的一种方式. link标签除了可以加载CSS外,还可 ...
- css -- 元素消失
元素从屏幕消失的方法: A:display:none B:opacity C:visibility D:text-intent:-10000em; E:margin可远可远了 F:position:a ...
- ural 2067. Friends and Berries
2067. Friends and Berries Time limit: 2.0 secondMemory limit: 64 MB There is a group of n children. ...
- 笔记本做wifi热点
你可以开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网.点开始 所有程序 命令提示符右键管理员身份运行命令提示符 运行命令:ne ...
- BZOJ 1059 & 二分图匹配
题意: 判断一个黑白染色的棋盘能否通过交换行或列使对角线上都是黑色. SOL: 真是有点醉...这种问题要么很神要么很水...第一眼感觉很水但就是不造怎么做...想了10分钟怎么感觉就是判断个数够不够 ...
- ACM: HDU 1285 确定比赛名次 - 拓扑排序
HDU 1285 确定比赛名次 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u De ...
- URAL 1658. Sum of Digits(DP)
题目链接 隔了一年零三个月,重新刷URAL,这题挺麻烦的输出路径.输出路径挺扯的,乱写了写乱改改就A了...我本来想用很靠谱,记录每一条路径的,然后输出最小的,结果Tle,然后我使劲水水又过了一组,发 ...
- ffmpeg解码
解码流程 http://www.cnblogs.com/lidabo/p/4582391.html 例子 http://www.cnblogs.com/lidabo/p/4582393.html
- (转)如何将数据库从SQL Server迁移到MySQL
一.迁移Database Schema. 首 先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型.具体操作是在Powerdesigner中选择“F ...