zoukankan      html  css  js  c++  java
  • Change Base

    Given an integer m in base B (2 ≤ B ≤ 10) (m contains no more than 1000 digits), find the value of the integer m in base 10, output the result modulo 10007.

    Input

    The first line of the input is a single integer T representing the number of test cases. Then T lines follow. In each line there are two integers: B and m, separated by a single space.

    Output

    For each test cases, give your answer in a single line.

    Sample Input

     

    3
    2 101
    7 16532505605660160442
    10 246234
    

     

    Sample Output

     

    5
    4165
    6066
    
    题意概述:给定一个以B为基数的整数,将这个数转化为以10为基数的整数,将所得的数对10007取模,将取模后的结果输出。需要注意的是,题目中指出给定的整数可能会很长,可能会有1000个位。
    解题思路:从题目概述中很容易就知道,这个题目必须使用字符串进行模拟,否则不能做。题目主要用到模运算的一些性质,了解即可。
    
    
    源代码:
    
    
    #include<string>
    #include<iostream>
    using namespace std;
    int main()
    {
        int T,B,L,R;
        string s;
        cin>>T;
        while(T--)
        {
             R=0;
             cin>>B>>s;
             for(int i=0;i<s.size();++i)
             {
                   //过程中就可以对每一次结果进行取模,避免出现结果超出int型的范围 
                   R=(R*B+s[i]-48)%10007; 
             }
             cout<<R<<endl;
        }
        return 0;
    }
    

     


  • 相关阅读:
    Mysql语句
    数据库的介绍以及安装
    数据库的基本操作
    进程
    并发编程
    友链
    C/C++第十一届蓝桥杯省赛B组第二场比赛
    数据结构之【栈】+十进制转d进制(堆栈数组模拟)
    sort函数的用法与实验
    memset的实验
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3371897.html
Copyright © 2011-2022 走看看