Язык C++ Дано два натуральных числа a, b; a∈N; b∈N. ** отрезке от a до b требуется найти...

0 голосов
57 просмотров

Язык C++ Дано два натуральных числа a, b; a∈N; b∈N. На отрезке от a до b требуется найти натуральное число с максимальным произведением его цифр. Каким образом это можно сделать наиболее оптимально.


Информатика Одаренный (3.5k баллов)
оставил комментарий Одаренный (3.5k баллов)

Пример теста: a=1; b=111; Вывод:99

оставил комментарий Одаренный (3.5k баллов)

a=134; b=186758656; Вывод:179999999

оставил комментарий Одаренный (3.5k баллов)

И уточнение a<=b

оставил комментарий Одаренный (3.5k баллов)

Последняя поправка: при a=134; b=186758656; Вывод 99999999

оставил комментарий

Задайте вопрос снова, получите решение.

Дан 1 ответ
0 голосов
Отличник (9.7k баллов)

#include

using namespace std;

int main() {

   string a,b;

   int m,k=0;

   cout<<"a = "; cin>>a;  

   cout<<"b = "; cin>>b;

   int ind=b.length();

   if (a.length()==b.length())

       while ((a[k]==b[k]) && (k    for (int i=k; i       if (b[i]==48) break;

      m=b[i+1]-48;

      if (i       if ((b[i]-48)*m < max((b[i]-49),1)*9) {

         if ((b[i]-49==0) && (i>0)) continue;                              

         ind=i+1; b[i]--; break;

      }  

   }                            

   for (int i=ind; i    if (b[0]=='0') b.erase(0,1);

   cout

   system("pause");      

   return 0;

}


...