不难看出这个可以用枚举的思想, 在开头或者最后以及中间的缝隙插入一位数(0~9) 从而让n成为7的倍数, 所以我们可以枚举每一个可以插入的位置,每一个位置有十种所以复杂度是(10long10(n+1)) 然后计算的复杂度为long10(n+1)所以总的复杂度为20long10(n+1) 为了简便所以直接用三层循环 ac代码附上:
#include<bits/stdc++.h>
using namespace std;
int a[10]={0},pd[10]={0};
int main()
{
string a;
cin>>a;
for(int i=0;i<=a.size();i++)
{
for(int j=0;j<=9;j++)
{
char x=j+'0';
a.insert(i,1,x);
long long ans=0;
for(int i=0;i<a.size();i++)
{
ans=ans*10+a[i]-'0';
}
if(ans%7==0)
{
cout<<a;
return 0;
}
else
{
a.erase(i,1);
}
}
}
}