Чтобы число получилось максимальным, нужно поменять самое большое вычитаемое число и самое маленькое прибавляемое. То есть 2015 и 2.
Сначала легче посчитать исходное значение выражение.
Если разбить выражение на пары (2016-2015) + (2014-2013) ... То можно заметить, что значение каждой скобки равно 1. Таких пар будет 2016 : 2 = 1008 1008*1 = 1008
В двух парах, а именно (2016-2015) и (2-1) произойдут изменения. Уберём их из общего выражения на время. Без этих 4-х чисел значение выражения равно 1006.
2016−2015+2014−2013+…+2−1 = 1006 + (2016 - 2015) + (2 - 1) Теперь поменяем местами 2015 и 2, найдём значение выражения:
void reduce(int* m, int* n) { int a,b,c; a=*m; b=*n; // НОД a b - алгоритм Евклида do { c=a%b; a=b; b=c; } while (b>0); *m/=a; *n/=a; }
int main() { int m,n; cout<<"input m n "; cin>>m>>n; cout<<m<<"/"<<n<<" = "; reduce(&m,&n); if (n>1) cout<<m<<"/"<<n<<endl; else cout<<m<<endl; system("pause"); return 0; }
input m n 25 15 25/15 = 5/3
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку