2023年12月14日發(作者:請假扣工資的計算方法)

任意進制的整數轉換成十進制數
輸入任意進制的整數,要求轉換成十進制數并輸出。
輸入格式:
輸入兩個數,a表示任意進制的整數,N表示進制。
輸出格式:
輸出a的十進制數。
限制:
空間限制:128MByte
時間限制:1秒
樣例:
輸入:
100110 2
輸出:
38
提示:
注意,最多16進制數,如果某位是10,用字符A表示,11用B表示....
例如,十六進制數AB,表示十進制數171
因為最多16進制,所以就可以按照 轉進制原理 直接肝
#include
#include
using namespace std;
int math(int a, int b)
{
int num = 1;
for(int i = 1; i <= b; i++)
{
num *= a;
}
return num;
}
string c;
int a;
int main()
{
cin >> c >> a;
int len = ();
int ans = 0;
if(a == 2)
{ { int sum = math(2, len - 1); for(int i = 0; i < len; i++) { // cout << (c[i] - '0') << " " << ans << " " << sum << endl; ans += (c[i] - '0') * sum; sum /= 2; } } el if(a == 3) { int sum = math(3, len - 1); for(int i = 0; i < len; i++) { // cout << (c[i] - '0') << " " << ans << " " << sum << endl; ans += (c[i] - '0') * sum; sum /= 3; } } el if(a == 4) { int sum = math(4, len - 1); for(int i = 0; i < len; i++) { // cout << (c[i] - '0') << " " << ans << " " << sum << endl; ans += (c[i] - '0') * sum; sum /= 4; } } el if(a == 5) { int sum = math(5, len - 1); for(int i = 0; i < len; i++) { // cout << (c[i] - '0') << " " << ans << " " << sum << endl; ans += (c[i] - '0') * sum; sum /= 5; } } el if(a == 6) { int sum = math(6, len - 1); for(int i = 0; i < len; i++) { // cout << (c[i] - '0') << " " << ans << " " << sum << endl; ans += (c[i] - '0') * sum; sum /= 6; } } el if(a == 7) { int sum = math(7, len - 1); for(int i = 0; i < len; i++) { // cout << (c[i] - '0') << " " << ans << " " << sum << endl; ans += (c[i] - '0') * sum; sum /= 7; } } el if(a == 8) { int sum = math(8, len - 1); for(int i = 0; i < len; i++) { // cout << (c[i] - '0') << " " << ans << " " << sum << endl; ans += (c[i] - '0') * sum; ans += (c[i] - '0') * sum; sum /= 8; } } el if(a == 9) { int sum = math(9, len - 1); for(int i = 0; i < len; i++) { // cout << (c[i] - '0') << " " << ans << " " << sum << endl; ans += (c[i] - '0') * sum; sum /= 9; } } el if (a == 10) { cout << c; } el if(a == 11) { int sum = math(11, len - 1); for(int i = 0; i < len; i++) { if(c[i] == 'A') { ans += 10 * sum; sum /= 11; } el { ans += (c[i] - '0') * sum; sum /= 11; } } } el if(a == 12) { int sum = math(12, len - 1); for(int i = 0; i < len; i++) { if(c[i] == 'A') { ans += 10 * sum; sum /= 12; } el if(c[i] == 'B') { ans += 11 * sum; sum /= 12; } el { ans += (c[i] - '0') * sum; sum /= 12; } } } el if(a == 13) { int sum = math(13, len - 1); for(int i = 0; i < len; i++) { if(c[i] == 'A') { ans += 10 * sum; sum /= 13; sum /= 13; } el if(c[i] == 'B') { ans += 11 * sum; sum /= 13; } el if(c[i] == 'C') { ans += 12 * sum; sum /= 13; } el { ans += (c[i] - '0') * sum; sum /= 13; } } } el if(a == 14) { int sum = math(15, len - 1); for(int i = 0; i < len; i++) { if(c[i] == 'A') { ans += 10 * sum; sum /= 14; } el if(c[i] == 'B') { ans += 11 * sum; sum /= 14; } el if(c[i] == 'C') { ans += 12 * sum; sum /= 14; } el if(c[i] == 'D') { ans += 13 * sum; sum /= 14; } el { ans += (c[i] - '0') * sum; sum /= 14; } } } el if(a == 15) { int sum = math(15, len - 1); for(int i = 0; i < len; i++) { if(c[i] == 'A') { ans += 10 * sum; sum /= 15; } el if(c[i] == 'B') { ans += 11 * sum; sum /= 15; } } el if(c[i] == 'C') { ans += 12 * sum; sum /= 15; } el if(c[i] == 'D') { ans += 13 * sum; sum /= 15; } el if(c[i] == 'E') { ans += 14 * sum; sum /= 15; } el { ans += (c[i] - '0') * sum; sum /= 15; } } } el if(a == 16) { int sum = math(16, len - 1); for(int i = 0; i < len; i++) { if(c[i] == 'A') { ans += 10 * sum; sum /= 16; } el if(c[i] == 'B') { ans += 11 * sum; sum /= 16; } el if(c[i] == 'C') { ans += 12 * sum; sum /= 16; } el if(c[i] == 'D') { ans += 13 * sum; sum /= 16; } el if(c[i] == 'E') { ans += 14 * sum; sum /= 16; } el if(c[i] == 'F') { ans += 15 * sum; sum /= 16; } el { ans += (c[i] - '0') * sum; sum /= 16; } } } cout << ans;
cout << ans;
return 0;
}
當然,也可以換種方法做
#include
#include
using namespace std;
string s;
int n;
int a = 0;
int main()
{
cin >> s;
cin >> n;
for(int i = 0; i < (); i++)
{
if(s[i] > '9')
{
a = a * n + s[i] - 'A' + 10;
}
el
{
a = a * n + s[i] - '0';
}
}
cout << a;
return 0;
}
本文發布于:2023-12-14 11:43:49,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1702525429246190.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:任意進制的整數轉換成十進制數.doc
本文 PDF 下載地址:任意進制的整數轉換成十進制數.pdf
| 留言與評論(共有 0 條評論) |