0分求调

B3849 [GESP样题 三级] 进制转换

SunriseLJY @ 2024-12-01 21:01:14

各位就不要直接给出自己AC时的代码了哈\ 样例过。

代码

#include <iostream>
using namespace std;

int a[20];
char ans[20];
char atoans[50] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};

int main() {
    int n,r;
    cin>>n>>r;

    int mx = 0;
    for(int i=0; i<n; i++){
        for(int j=0; j<20; j++){
            if(a[j] >= r){
                mx = j+1;
                a[j+1]++;
                a[j] = 0;
            }
        }
        a[0]++;
    }

    for(int i=0; i<=mx; i++){
        ans[i] = atoans[a[i]];
    }

    for(int i=mx; i>=0; i--){
        cout<<ans[i];
    }
    cout<<endl;

    return 0;
}

by fanmili @ 2024-12-03 19:44:27

#include <iostream>
using namespace std;

int a[20];
char ans[20];
char atoans[50] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};

int main() {
    int n,r;
    cin>>n>>r;

    int mx = 0;
    for(int i=0; i<n; i++){
        a[0]++;
        for(int j=0; j<20; j++){
            if(a[j] >= r){
                if(j + 1 > mx) mx = j+1;
                a[j+1]++;
                a[j] = 0;
            }
        }
    }

    for(int i=0; i<=mx; i++){
        ans[i] = atoans[a[i]];
    }

    for(int i=mx; i>=0; i--){
        cout<<ans[i];
    }
    cout<<endl;

    return 0;
}

by fanmili @ 2024-12-03 19:46:35

@SunriseLJY


|