神犇营-my0106-进制转换

【小韦同学@神犇营-my0106-进制转换】

题目:

描述

将一个 r (2 ≤ r ≤ 9)进制的数 x (0 ≤ x ≤ 100000000)转成十进制。
本题所有的数据均小于等于 10 ^18。

输入

输入仅一行,为 r 和 x,两个数字用空格隔开。

输出

输出仅一行,为对应的十进制数。

输入样例1

2 110

输出样例1

6

题解:

/*********************************************************************

* 题目:神犇营-my0106-进制转换
* 作者:小韦老师
* 邮箱:weichangying_wcy@163.com

* 题解:
	思路:
	用一个变量 r 来存储进制数,用另一个变量 x 来存储输入的数。 
	根据进制转换的公式,码权积累和来做进制转换。
	用一个变量 num 来存储转换得的十进制数,初始化为 0;用另一个变量 p 
	来存储权值。
	当 x 不等于 -1 时,将 x 的最右边的数对应的码权积累加到 num 中,x 
	将最右边的数划掉(x /= 10),权值乘以 r(p *= r)。  
	 
*********************************************************************/

#include <bits/stdc++.h>

using namespace std;

int main() {
	
	int r, x;
	cin >> r >> x;
	int num = 0;
	int p = 1;
	while (x != 0) {
		int t = x % 10;
		num += t * p;
		x /= 10;
		p *= r;
	}
	cout << num;

	return 0;
}

我是小韦同学,企者不立,跨者不行,每天进步一点点。
欢迎大家多多交流,如果发现有错误,请多指正。有疑问的同学也可以留言评论或者发邮件。
邮箱:weichangying_wcy@163.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值