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作为关健字保留起来) ...
随机推荐
- Uva 129 Krypton Factor
0.这道题的输出 处理起来挺麻烦的 以后类似的可以借鉴一下 ;i<cur;i++) { && i%==) printf("\n%c",a[i]); & ...
- 豆制品厂开车超市送货智能手持PDA POS打票机-手持票据打印机
豆制品厂开车拉着豆腐到某一个超市送货,到达后秤出斤数后就用票据打印机开单 能直接开单,单子一式两份,一张给客户一张留底,到月底时客户要根据客户的量返点的,单子统计.能现场开单,单子上显示哪个超市,豆制 ...
- jquery的siblings()
jquery 点击 感兴趣 感兴趣变为 蓝色 去掉onclick事件 不感兴趣 变为 黑色 加上点击事件 点击 不感兴趣 不感兴趣变为 蓝色 去掉onclick 感兴趣 变为 黑色 加上点击事件 ht ...
- testng.xml文件结构组成及节点属性说明
TestNG的DTD检查文件:http://testng.org/testng-1.0.dtd.PHP 更多testng配置及说明,请移步http://testdoc.org/docmaster?pi ...
- 使用maven 如何生成源代码的jar包
http://hw1287789687.iteye.com/blog/1943157
- WPF之依赖属性
Introduction When you begin to develop appliations with WPF, you will soon stumble across Dependency ...
- linux查看硬件以及系统信息
http://tech.idv2.com/2008/01/11/linux-sysinfo-cmds/ /proc目录的内容: /proc/cpuinfo 关于处理器的信息,如类型.厂家.型号和性 ...
- 【原】MAC显示隐藏文件夹命令
显示隐藏文件夹 1. 显示:defaults write com.apple.finder AppleShowAllFiles -bool true 第一步:命令行执行上述命令:
- 争夺 & KM思想
题意: 给一张二分图,每个点与两个特定点又一条边相连,边权非负,让你给这个二分图每个点一个顶标,让每一条边两端顶标和大于等于这条边.求出最小顶标和. 这当然是翻译过的题目... 原题: 小Y和小P无聊 ...
- CentOS6.4安装mysql2redis
1.安装apr 下载:http://apache.dataguru.cn//apr/apr-1.5.1.tar.gz tar zxvf apr-.tar.gz cd apr- vi configure ...