分数 20
作者 陈晓梅
单位 广东外语外贸大学
题目给出一个由18位八进制数字组成的序列,要求每六位转成一个十进制数并输出。
输入格式:
18位八进制数字组成的序列。
输出格式:
输出转换后的三个十进制数,以空格分隔,行末不能有空格。
输入样例:
000023452230567134
输出样例:
在这里给出相应的输出。例如:
19 152728 192092
思路:现将十八位数字分为三组六位的字符串,再分别将每个字符串转成十进制
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main() {
string S;
cin >> S;
// 将输入序列分成三部分,每部分6个八进制数字
string part1 = S.substr(0, 6);
string part2 = S.substr(6, 6);
string part3 = S.substr(12, 6);
// 将八进制数字转换为十进制
int d1 = 0, d2 = 0, d3 = 0;
for (int i = 0; i < 6; ++i) {
d1 += (S[i] - '0') * pow(8, 5 - i);
d2 += (S[i + 6] -
标签:include,string,int,PTA,substr,八进制,十进制
From: https://blog.csdn.net/2301_80386162/article/details/137289790