Язык C++Дано два естественных числа a, b; aN; bN.На отрезке от

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

Задать свой вопрос
Данил Свидунович
Пример теста: a=1; b=111; Вывод:99
Игорь Ксинофонтов
a=134; b=186758656; Вывод:179999999
Albina Chupsheva
И уточнение a<=b
Алиса Лащик
Последняя поправка: при a=134; b=186758656; Вывод 99999999
Тимур
Задайте вопрос опять, получите решение.
1 ответ

include lt;iostreamgt;

using namespace std;

int main()

   string a,b;

   int m,k=0;

   coutlt;lt;"a = "; cingt;gt;a;  

   coutlt;lt;"b = "; cingt;gt;b;

   int ind=b.length();

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

       while ((a[k]==b[k]) amp;amp; (klt;b.length()-1)) k++;

   for (int i=k; ilt;b.length()-1; i++)

      if (b[i]==48) break;

      m=b[i+1]-48;

      if (ilt;b.length()-2) m--;

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

         if ((b[i]-49==0) amp;amp; (igt;0)) continue;                              

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

       

                               

   for (int i=ind; ilt;b.length(); i++) b[i]='9';

   if (b[0]=='0') b.erase(0,1);

   coutlt;lt;blt;lt;endl;

   system("pause");      

   return 0;


, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт