nastya652
20.04.2020 09:18

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
5284144
11.08.2020 13:02

#include <iostream>

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<b.length()-1)) k++;

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

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

      m=b[i+1]-48;

      if (i<b.length()-2) m--;

      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<b.length(); i++) b[i]='9';

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

   cout<<b<<endl;

   system("pause");      

   return 0;

}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота