进制转换 + 大整数取模
一,题意:
  在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,倒序输出

 1 #include<iostream>
 2 #include<string.h>
 3 using namespace std;
 4 const int N=1010;   //大数位数
 5
 6 int main(){
 7     int b;       //进制数
 8     while(cin>>b&&b){
 9         char p[N] , m[N] , ans[N];
10         int p2 = 0 , m2 = 0;  //定义用来储存十进制的被除数、除数
11         cin>>p>>m;
12         for(int j=0 ; j<strlen(m) ; j++){  //把n进制字符串除数转换为十进制数字除数
13             m2 = m2*b + m[j]-'0';
14         }
15         for(int i=0 ; i<strlen(p) ; i++){  //把n进制字符串被除数转换为十进制数字被除数
16             p2 = (p2*b + p[i]-'0') % m2;   //为避免大数计算,进制转化时顺便求模
17         }
18         if(!p2)
19             cout<<0<<endl;
20         else{
21             int k = 0;
22             while(p2){
23                 ans[k++] = p2%b + '0'; //把10进制数 转换为 n进制字符串倒序并存入 P[] 中
24                 p2 /= b;
25             }
26             for(int i = k-1 ; i >= 0 ; i--)
27                 cout<<ans[i];
28             cout<<endl;
29         }
30     }
31     return 0;
32 }

View Code

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/My-Sunshine/p/4852183.html

poj2305-Basic remains(进制转换 + 大整数取模)相关推荐

  1. 模运算——大整数取模、幂取模等

    一.加法.减法.乘法取模 int add_mod(int a, int b, int p) {a %= p; b %= p;return (a + b) % p; }int sub_mod(int a ...

  2. C语言取字节的第n二进制,学C语言的看过来,最完整进制转换、整数和小数内存存储模型...

    什么是进制 进制也就是进位计数制,是人为定义的带进位的计数方法.对于任何一种进制---N进制,就表示每一位置上的数运算时都是逢N进一位. 数数相信大家都会了,比如0 1 2 3 4 5 6 7 8 9 ...

  3. C语言:进制转换(整数、字符串)

    本文重点:常见的整型.字符串进制转换(略有不同) 参考书籍:<算法笔记> 1.int型进制转换 1.1.P进制数x转换为十进制数y 实现代码如下: #include <cstdio& ...

  4. 【BZOJ】3751: [NOIP2014]解方程【秦九韶公式】【大整数取模技巧】

    3751: [NOIP2014]解方程 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 4856  Solved: 983 [Submit][Stat ...

  5. nyoj-205--求余数--(大整数取模)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=205 #include<stdio.h> #include<string ...

  6. NYOJ 1077 【博弈+大整数取模】

    题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=1077 描述 Yougth和Hrdv这对黄金博弈搭档又要玩游戏了,有n个石子,每次最多可以取a ...

  7. C语言32位正整数作为id进程,SOJ4453 Excel列数 进制转换

    描述 我们都知道Excel的列数是用字母表示的,比如第1列对应A,第27列对应AA. 假设给定一个正整数n,你能给出它所对应的字母表示么? 输入格式 程序需要读入多个测试样例,每个测试样例中: 一个正 ...

  8. 计算机进制转进制,计算机中进制及进制转换

    <计算机中进制及进制转换>由会员分享,可在线阅读,更多相关<计算机中进制及进制转换(55页珍藏版)>请在人人文库网上搜索. 1.计算机中进制及进制转换 计算机中进制及进制转换 ...

  9. 字符串出现的次数,进制转换

    CSDN话题挑战赛第2期 参赛话题:算法题解 字符串出现的次数 思路 题目要求找出出现次数前k的字符串,最为简单的就是直接遍历数组统计每个字符串出现的次数,接着再降序排序输出前k的字符串. 具体步骤 ...

最新文章

  1. 如何实现一个优质的微服务框架:Apache ServiceComb 的开放性设计
  2. 老李案例分享:Weblogic性能优化案例
  3. 【Android 电量优化】JobScheduler 相关源码分析 ( JobSchedulerService 源码分析 | Android 源码在线网址推荐 )
  4. 找出一个数组中出现次数最多的那个元素
  5. 计算器中 MS、MR、M+、M- 和 MC 的功能介绍
  6. c语言将字母的acsaii,C语言上机实验 答案
  7. typec扩展坞hdmi没反应_typec扩展坞转hdmi/vga多功能网口usb转换器苹果华为电脑matebook6元优惠券券后价26.8元...
  8. UE3 使用光源函数
  9. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)--里面有BUG,所以我转载改一下
  10. 微信雄踞,头条社交梦破碎?| 畅言
  11. dreamweaver排列顺序怎么用_「化妆教程」粉底液是怎么用的?用在哪个具体步骤顺序...
  12. 梦里看到你为我写的情书
  13. (环境搭建+复现)ZZZCMS模版注入+文件包含getshell
  14. 计算机在中医临床学的应用,中医临床学术论文(2)
  15. 5、优化方法:随机梯度下降法
  16. 苹果6s最大屏幕尺寸_羡慕苹果3DTouch好用?安卓这个功能不比它差!
  17. (适配方案总结)客户薅公司两台ipad,我还要给做适配?
  18. Stream流的常用方法以及代码练习
  19. ubuntu18.04安装详解
  20. gitlab删除项目时 ,没有删除选项

热门文章

  1. laravel5.5的定时任务详解(demo)
  2. python【数据结构与算法】剪枝策略
  3. 【Network Security!】DOS基本命令与批处理(看不懂来打我)
  4. aggr代码 cellranger_单细胞转录组测序数据分析流程-数据预处理
  5. php使用redis分布式锁,php基于redis的分布式锁实例详解
  6. 小程序css中设置1rpx失效
  7. springboot之@ConfigurationProperties加载配置文件
  8. 多线程, 注入spring 服务
  9. java 泛型 t_Kotlin(2) 泛型与集合
  10. html5在线api,HTML5 历史记录API