• 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,倒序输出

     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

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

  • 相关阅读:
    XTOOL X100 PAD2编程2009 Renault Symbol (Dacia) 所有钥匙丢失
    XTOOL X100 PAD3通过OBD给2014 BMW CAS4 Key编程
    Scania VCI3 SDP3 2.44.1下载免费和安装指南
    VVDI2 V6.7.5 Software Download Free & Install (Update)
    三个步骤解决2m2 magic tank 无法校准HON66钥匙的问题
    VVDI Mini钥匙工具令牌,固件和数据库更新
    kubernetes 认证,授权
    maven 随笔,周末重拾maven
    分布式演进的一点理解
    如何理解持续集成、持续交付、持续部署?
  • 原文地址:https://www.cnblogs.com/My-Sunshine/p/4852183.html
Copyright © 2020-2023  润新知