342
社区成员
发帖
与我相关
我的任务
分享0最后插入即可
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main() {
string result;
vector<int> num(10);
for (int i = 0; i < 10; i++) {
cin >> num[i];
}
for (int i = 1; i < 10; i++) {
while (num[i]--) {
result += (i + '0');
}
}
while (num[0]--) {
result.insert(1,"0");
}
cout << result;
}
查阅资料,决定使用regex来规定输入样式
#include <iostream>
#include<regex>
using namespace std;
int main() {
string input;
getline(cin, input);
string result;
regex standard(R"(^([+-])([1-9])\.([0-9]+)[E]([+-])([0-9]+)$)");//这里使用regex的定义输入
smatch data;
regex_match(input, data, standard);
result += data[2];
result += data[3];
if (data[4] == "+") {
if (stoi(data[5]) < (result.size() - 1)) {
result.insert(stoi(data[5]) + 1, ".");
}
else {
string a(stoi(data[5]) - (result.size() - 1), '0');
result += a;
}
}
else {
string b(stoi(data[5]) - 1, '0');
string title = "0.";
result = title + b + result;
}
if (data[1] == "-") {
result = "-"+result;
}
cout << result;
}