prefacio
Esta pregunta realmente es una buena pregunta.
texto
análisis
En primer lugar, pensamos, una serie de sub cambiando lo que se deben cumplir las condiciones.
No puede exceder el máximo factor de calidad base medio.
A continuación, encontrará número mínimo de cambios en los padres de a a romper , a continuación, guardarlo, y finalmente la salida contra.
¿Por qué?
-
para el número mínimo de cambios de los padres, nuestra primera Ge como sea posible para asegurar que el número de bits menos.
-
Bajo la premisa de dígitos como mínimo posible, queremos que el número tan pequeño como sea posible,
#include <bits/stdc++.h>
using namespace std;
int x=9,a[1010],len,l=1;
vector<int>v;
int main(){
char ch=getchar();
for(;!isdigit(ch);ch=getchar());
for(;isdigit(ch);ch=getchar())a[++len]=ch-'0';//读入
while(x>=2){
int y=0;
for(int i=1;i<=len;i++){
y=y*10+a[i];
y%=x;
}
if(y)x--;//如果不能整除
else{
v.push_back(x);//存入
for(int i=1;i<=len;i++){
y=y*10+a[i];
a[i]=y/x;y%=x;//除
}if(a[l]==0)l++;
}
}if(len!=l)puts("There is no such number!");
else for(int i=v.size()-1;i>=0;i--)cout<<v[i];//反着输出
return 0;
}
posdata
Si tiene alguna pregunta, puede escribirlo en la sección de comentarios, por lo que una solución más completa de este problema.