字符串进制转换“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛

xiaoxiao2021-02-28  90

字符串进制转换

发布时间: 2017年7月9日 21:16   最后更新: 2017年7月10日 21:10   时间限制: 1000ms   内存限制: 128M

描述

Claire Redfield在龙之谷游戏的一次任务中获得了一个上了锁的宝箱,上面刻了一串由小写字母构成的字符串A和一个数字 m

经过Claire长时间研究,他发现密码是和 a m 有关的。字符串A相当于一个26进制的数字, a 相当于 0 b 相当于 1 ……. z 相当于 25 。然后要将这个26进制的数转化成 m 进制那就是这个宝箱的密码。

Claire觉得这个太简单了所以要你帮她完成。

输入

多组输入,每组一行,输入一个字符串 A 和一个正整数 m 。 字符串长度 <=102<=m<=9

输出

每组输出一行答案,如题意。

样例输入1  复制 b 2 样例输出1 1 选择语言 想法:水题,注意进制转换 代码: #include<bits/stdc++.h> using namespace std; char s[20]; int a[1000]; long long pow(int x,int y) {     long long ans=1;     if(y==0)         return 1;     for(int i=0;i<y;i++)     {         ans=ans*x;     }     return ans; } int main() {     int m;     while(scanf("%s %d",s,&m)!=EOF)     {        //printf("%d\n",pow(26,m));         if(m<2||m>9)             continue;         int len=strlen(s);         long long n=0;         for(int i=len-1;i>=0;i--)         {             n=n+(s[i]-'a')*pow(26,len-1-i);         }         //printf("%d\n",n);         if(n==0)         {             printf("0\n");             continue;         }         int i=0;         while(n>0)         {             a[i]=n%m;             n=n/m;             i++;         }         for(int j=i-1;j>=0;j--)         {             printf("%d",a[j]);         }         printf("\n");         getchar();     }     return 0; }
转载请注明原文地址: https://www.6miu.com/read-50279.html

最新回复(0)