ACM题解报告——进制数取于余
2013-05-14 21:08
183 查看
这道题折磨了我好久,开始以为要把输入X进制串转换为十进制串,然后对十进制串进行逐位取余,但是由于X进制串的位数会非常大,没有想到好的转换算法,这里我是对X进制串进行逐位取余,这样就不会受其位数的影响了,代码也比较简单,涉及到的一个常用的公式就是(a+b)%c=[(a%c)+(b%c)]%c.
代码如下:
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; int main( ) { int t,b,sum,len,i; char a[105]; cin>>t; while(t--) { sum=0; cin>>b>>a; len=strlen(a);//计算a字符串长度 for(i=0;i<len;i++)//核心 { sum+=(a[i]-'0')*b;//将最高位的X进制数转化为十进制 sum*=b;//左移一位 sum%=( b+1);//逐位取余 } cout<<sum<<endl; } return 0; }
相关文章推荐
- ACM题解报告——HD1022
- ACM题解报告——HD1496
- 重邮第八届ACM大赛-预赛题解报告
- 重邮第八届ACM大赛-决赛题解报告
- ACM题解报告——HD1006
- 2015浙江财经大学ACM有奖周赛(一) 题解报告
- 2012 ACM/ICPC Asia Regional Tianjin Online 1006_you are the one 解题报告
- 130723杭电ACM多校第一场解题报告
- 2012 ACM/ICPC Asia Regional Tianjin Online [赛后解题报告]
- 杭电 1405 The Last Practice 题解报告
- 【题解】 2015 ACM/ICPC Asia Regional Changchun Online (5+2)
- Codeforces Round #365 (Div. 2)题解报告
- 【题解】 2015 ACM/ICPC Asia Regional Shenyang Online (3+1)
- Travelling HDU - 3001(三进制状态压缩) 题解
- 山东省第四届acm解题报告(部分)
- 我的第三十一个C++上机报告(转化成2进制)
- 寒假集训附加题目题解报告(1)——数列
- 2011 ACM-ICPC 成都赛区解题报告(转)
- ACM-FZOJ1011解题报告
- 杭电多校 1011 Regular polygon! 题解报告