文章

3

粉丝

48

获赞

1

访问

1.8k

头像
进制转换3 题解:X(M) -> n(10) -> ret(N)
P1422 清华大学/厦门大学机试题
发布于2024年7月14日 02:10
阅读数 430

思路:X(M) -> n(10) -> ret(N),第一次提交80%,将int改为long就100%。

代码(c++)如下:

#include <iostream>
using namespace std;

void rank_reverse(char* a,long M,long N){
    char Alpha[37]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    char alpha[37]="0123456789abcdefghijklmnopqrstuvwxyz";
    //X(M) -> n(10)
    long n=0,i=0,j=0;
    while(a[i]!='\0'){
        while(Alpha[j]!=a[i]) j++;
        n=n*M+j;
        i++;j=0;
    }
    //n(10) -> ret(N)
    char tmp[300],ret[300];
    i=0,j=0;
    while(n>=N){
        tmp[i++]=alpha[n%N];
        n/=N;
    }
    tmp[i]=alpha[n];
    j=i;
 &nbs...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发