3 solutions
-
0
// https://dashoj.com/p/96 #include <bits/stdc++.h> using namespace std; typedef long long ll; string s; int base, power = 0; ll result = 0; int main() { cin >> s >> base; for (int i = s.size() - 1; i >= 0; i--) { int value; if (isdigit(s[i])) value = s[i] - '0'; else value = s[i] - 'A' + 10; result += value * pow(base, power); power++; } cout << result << endl; return 0; }
-
0
用 1001 分别以二进制、八进制、十六进制转成十进制
-
二进制 1001 转十进制
-
八进制 1001 转十进制
-
十六进制 1001 转十进制
对于小数, 则是
输入一个 进制数, 把它转化为 十进制!
#include <iostream> #include <string> using namespace std; int main() { string str; int jz; cin >> str >> jz; long long res = 0; long long k = 1; for (int i = str.size() - 1; i >= 0; --i) { if ('0' <= str[i] && str[i] <= '9') { res += (str[i] - '0') * k; } else { res += (10 + str[i] - 'A') * k; } k *= jz; } cout << res << endl; return 0; }
-
-
0
#include <bits/stdc++.h>
using namespace std; int main(){ string s; long long ans=0;//必须让自定义函数等于0 否则就会再下列计算中 自己加上自己的asall值 int k=0, base=0; cin>> s >> base;
for ( int i=s.size()-1;i>=0; i--){ //缺失了条件 if (s[i]>='A' ){ ans += ( s[i]-'A'+10 )* pow( base, k++); } else { ans += (s[i]-'0')* pow( base,k++); }
} cout << ans<<endl;
return 0;
}
- 1
Information
- ID
- 96
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 166
- Accepted
- 88
- Uploaded By