ZCMU 5122: 小何的旅行I

本篇介绍了一个关于字符串处理和进制转换的问题——帮助小何在外星球旅行时进行不同种族间的货币换算。文章提供了完整的代码实现,涉及字符串处理、进制模拟等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5122: 小何的旅行I
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 22 Solved: 12
[Submit][Status][Web Board]
Description
有一天小何来到一个陌生的星球上旅游,但这边的钱币上印有奇奇怪怪的符号和字母,小何看不懂,但他又想买东西(不吃东西要饿死的!),而你是在那个星球上唯一认识的人,于是就找来你帮他翻译下。

这个星球上不同的种族分别收不一样币种的钱币,而小何想买的东西也来自不同种族所开的店铺,因此他想知道,他手里的钱币换成另一种钱币它的币值将会变成多少。

那边的钱币不同的面额采用不同的进制,而且也没有阿拉伯数字,只有小写字母和符号表示,字母表示数字,而符号则表示它的币种(也就是代表是几进制的)。

在这里插入图片描述

例如种类为#的一个合法的币值为:#abc,#bfa。

Input
第一行仅包含一个整数T(1≤T≤100),代表有T组样例。

接下来的T行,每行包含一个币值和一个要求转换的目标币种。(数据保证没有前导0,也就是不存在类似#abc这种由a开头的币值,同时也不会有0元这种存在。保证币值的长度不超过70,目标币种仅为1个字符。)

提示: 数据范围较大,请使用long long类型代替int。

Output
输出目标币种的币值(不能出现前导0)。

Sample Input

3
#bac ^
$bahdgm #
^bab #

Sample Output

^bbaabb
#bfceaedg
#f

Code:
字符串处理的进制模拟

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<queue>
#include<stack>
#include<vector>
using namespace std;
typedef long long ll;
const int inf=0x3f3f3f3f;
int a[100005];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        memset(a,0,sizeof(a));
        string x;
        char op;
        cin>>x>>op;
        int num;
        if(x[0]=='#')
        {
            num=7;
        }
        else if(x[0]=='$')
        {
            num=17;
        }
        else if(x[0]=='^')
        {
            num=2;
        }
        ll sum=0;
        for(int i=1; i<x.size(); i++)
        {
            sum=sum*num+(x[i]-'a');
        }
        if(op=='#')
        {
            num=7;
        }
        else if(op=='$')
        {
            num=17;
        }
        else if(op=='^')
        {
            num=2;
        }
        int cnt=0;
        while(sum!=0)
        {
            a[cnt++]=sum%num;
            sum/=num;
        }
        printf("%c",op);
        for(int i=cnt-1;i>=0;i--)
        {
            printf("%c",a[i]+'a');
        }
        printf("\n");
    }
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值