hdu1335
http://acm.hdu.edu.cn/showproblem.php?pid=1335
AC代码:
#include"cstdio" #include"cstring" #include"iostream" #include"algorithm" using namespace std; int f[1008],j=0; int T(char c[],int n) { int s=0; for(int i=0; c[i]; i++) { if(c[i]=='A'||c[i]=='B'||c[i]=='C'||c[i]=='D'||c[i]=='E'||c[i]=='F') s=s*n+c[i]-'A'+10; else s=s*n+c[i]-'0'; } return s; } int G(int s,int n) { int flag=0; j=0; memset(f,0,sizeof(f)); while(s) { f[j++]=s%n; s/=n; if(j>7) { flag=1; break; } } return flag; } int main() { char c[100]; int n1,n2; while(cin>>c>>n1>>n2) { int s=T(c,n1); int flag=G(s,n2); if(flag) { printf(" "); printf("ERROR\n"); } else { for(int i=0; i<7-j; i++) printf(" "); for(int i=j-1; i>=0; i--) { if(f[i]>=10) printf("%c",f[i]-10+'A'); else printf("%d",f[i]); } printf("\n"); } memset(c,0,sizeof(c)); } return 0; }
本文介绍了一道经典的进制转换编程题HDU 1335的解决方案,通过示例代码详细展示了如何将一种进制的数转换为另一种进制的数,并特别注意转换过程中可能出现的错误。
708

被折叠的 条评论
为什么被折叠?



