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

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

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


Информатика (3.5k баллов) | 36 просмотров
0

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

0

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

0

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

0

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

0

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

Дан 1 ответ
0 голосов

#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;

}


(9.7k баллов)