进制转换

问题 L: 数制转换

时间限制: 5 Sec  内存限制: 125 MB
提交: 8  解决: 5
[ 提交] [ 状态] [ 讨论版] [命题人:外部导入]
题目描述

假设有一个字符串str的结构为:str='m<n>p'。这表示我们需要将str中的n进制数m,以p进制的形式输出。 

其中m, n, p 皆为整数,n, p两数均不小于2、不大于10(2 <= n, p <= 10),而m为数字串,长度不超过10位(0 <= m < n^10)。 

例如: 

    输入2<10>2 

    输出结果为2<10>=10<2> 

输入
输入一个字符串,形式如m<n>p。 
输出
输出数制转换后的结果(格式见样例)。 
样例输入 Copy
2<10>2
样例输出 Copy
2<10>=10<2>




 1 #include <iostream>
 2 #include <stdlib.h>
 3 #include <cstdio>
 4 #include <sstream>
 5 #include <string>
 6 #include <cstring>
 7 #include <algorithm>
 8 using namespace std;
 9 void tenzhuan(long int n, int t, string &s1){
10     s1 = "";
11     bool flag = true;
12     while(n){
13         int temp = n % t;
14         char c = temp + '0';
15         s1 += c;
16         n /= t;
17     }
18     reverse(s1.begin(), s1.end());
19 }
20 int main(){
21     long long m, n, p;//因为m最高位为10为所以必须是longlong 
22     scanf("%ld<%ld>%ld", &m, &n, &p);//m是需要被转化的数,n是m的初始进制,p是转化后的进制
23     char str[100];//用来存放转化结果
24     char str1[100];
25     char *str2;//用来存储垃圾字符 
26     stringstream ss;
27     ss << m;
28     ss >> str1;
29     long long ten = strtol(str1, &str2, n);
30     string s1;
31     tenzhuan(ten, p, s1);
32     cout << m << "<" << n << ">=" << s1 << "<" << p << ">";
33     return 0;
34 }

 

转载于:https://www.cnblogs.com/AGoodDay/p/10564172.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值