链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
游游拿到了一个正整数 xxx,她希望在 xxx 中添加一个数字,使它成为 7 的倍数。你能帮帮她吗?
输入描述:
一个正整数 xxx。 1≤x≤1091\leq x \leq 10^91≤x≤109
输出描述:
xxx添加一个数字后形成的数。请务必保证操作的合法性,且一定是7的倍数。如果有多解,输出任意一个合法解。可以证明,至少存在一个正确答案。
示例1
输入
1
输出
21
说明
在前面添加一个2即可。
示例2
输入
15
输出
105
说明
在1和2的中间添加一个0。105=15*7,合法。另外,31
#include <iostream>
#include <vector>
using namespace std;
int main() {
long long n;
cin >> n;
vector<int> digits;
while (n) {
int w = n % 10;
n /= 10;
digits.push_back(w);
}
for (int i = 0; i <= digits.size(); i++) {
for (int j = 0; j <= 9; j++) {
digits.insert(digits.begin() + i, j);//在开始的i位置添加一个j
long long sum = 0;
for (int k = digits.size(); k >= 0; k--) {
sum = sum * 10 + digits[k];
}
if (sum % 7 == 0) {
cout << sum << endl;
return 0;
}
digits.erase(digits.begin() + i);//结束以后删掉插入的数,进行下个位置计算
}
}
return 0;
}
5、154等答案也是合法的。