poj 2305 Basic remains 高精度取余

题意:

裸的高精度取余。

分析:

有poj 1220任意进制转换的代码,,这题用到其中的一部分,可作对比。

代码:

//poj 2305//sep9#include <iostream>using namespace std;int b,m;char s1[1024],s2[16],ans[16];int p[1024];int main(){while(scanf("%d",&b)==1&&b){scanf("%s%s",s1,s2);int k,i;k=strlen(s2);for(m=i=0;i<k;++i)m=m*b+s2[i]-'0';k=strlen(s1);for(i=k-1;i>=0;–i)p[k-1-i]=s1[i]-'0';for(i=k-1;i>0;–i){p[i-1]+=p[i]%m*b;p[i]/=m;}int l=0,a=p[0]%m;if(!a){puts("0");continue;}while(a){ans[l++]=a%b;a/=b;}for(i=l-1;i>=0;–i)printf("%d",ans[i]);puts("");}return 0;}

只剩下一条路,那就是成功的路。

poj 2305 Basic remains 高精度取余

相关文章:

你感兴趣的文章:

标签云: