НАПИСАТЬ ПРОГРАММУ НА С++Написали два числа. Если первое число увеличить на 30%, а второе уменьшить на 10%, то их сумма увеличиться на 6. Если же первое число уменьшить на 10%, а второе на 20%, то их сумма уменьшится на 16. Какие числа были написаны.


Аноним: я еще раз говорю я решил без программы
sse1r: Ну так прочитай первую строку задания
sse1r: Задача не решить , а написать программу
Аноним: ответы должны быть 40 и 60, подставьте попробуйте
sse1r: Мне нужен код программы который найдет этот результат
sse1r: Не зная ответа
Аноним: Я понял, в комментарии приведу решение сейчас, может это натолкнет вас на мысль. Решал не зная вашего (неверного) ответа.
Аноним: Составим систему уравнений:
где x, y -искомые числа, z - их сумма

x+y=z
1,3x+0,9y=z+6
0,9x+0,8y=z-16

Умножим второе уравнение на -1 и сложим с третьим:
-0,4x-0,1y=-22
0,1(4x+y)=22
y = 220-4x

Подставим y в третье уравнение (при этом заменим z на x+y - из первого уравнения):
0,9x+0,8*(220-4x)=x+220-4x-16
0,9x-x+4x+176-3,2x=220-16
-0,1x+0,8x=220-176-16
0,7x=28
x=40
Аноним: Подставим x в y = 220-4x :
y = 220-4*40 = 220 - 160 = 60

Проверим:
40+60 = 100
40*1,3 + 60 * 0,9 = 52 + 54 = 106 (100 + 6)
40*0,9 + 60 * 0,8 = 36 + 48 = 84 (100 - 16)
sse1r: Спасибо за то что попытался

Ответы

Ответ дал: matvik03072006
1

Ответ:

#include <iostream>

using namespace std;

int main() {

 int x,y;

 for(int i=1;i<10000;i++){

   for(int b=1;b<10000;b++){

     if(i*1.3+b*0.9-6==i+b){

       if(i*0.9+b*0.8+16==i+b){

         x=i;

         y=b;

         break;

       }

       else{continue;}

     }

   }

 }

 cout<<x<<" "<<y;

}

Объяснение:


Аноним: Числа могли быть и больше 10000, теоретически
matvik03072006: а есть какие-то ограничения?
Аноним: у вас в программе до 10000 оба числа перебираются
Похожие вопросы