Так и не получил ответ, надо считать A + B * N или (A + B) * N, поэтому использовал второй вариант. Если что, можно легко поменять.
На C++:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main() {
setlocale(0, "RU");
try {
string InputError = "Ошибка ввода";
cout << "Введите стоимость основания спиннера: ";
int a;
cin >> a;
if (cin.fail()) {
throw(InputError);
}
cout << "Введите стоимость одной лопасти: ";
int b;
cin >> b;
if (cin.fail()) {
throw(InputError);
}
cout << "Введите максимальную цену всего спиннера: ";
int c;
cin >> c;
if (cin.fail()) {
throw(InputError);
}
int max = 20000000000;
if (a <= c && a != max && b != max && c != max) {
int n = 1;
while (true) {
if ((a + b) * n <= c) {
n++;
}
else {
n--;
break;
}
}
system("cls");
cout << n;
}
else {
string InvalidValues = "Недопустимые значения";
throw(InvalidValues);
}
}
catch (string a) {
cout << "\n" << a << "...";
_getch();
}
return 0;
}
Произведем вывод формулы расчета количества лопастей:
Так как все операнды целые числа, мы имеем целочисленное деление и целое число в результате. Это сравнимо с округлением вниз, поэтому С по стоимости мы не перепрыгнем.
Код:
#include <iostream>
long long calculate_spin_number(
long long A,
long long B,
long long C
) {
return std::max((C - A) / B, 0ll);
}
int main () {
long long A, B, C;
std::cin >> A >> B >> C;
std::cout << calculate_spin_number(A, B, C) << std::endl;
return 0;
}
Функция calculate_spin_number() рассчитывает количество лопастей по параметрам A, B, C.
(!!) Внимание! Мы не можем использовать int или unsigned int для хранения чисел такого размера как 20000000000. Нужно использовать long или long long.
===========================================================
Если ответ удовлетворил, не забудь отметить его как "Лучший".
USES CRT;
VAR m1,m2,n,n1,n2,n3,n4,n5,n6,s1,s2:LongInt;
BEGIN
ClrScr;
ReadLn(n);
m1:=n;
n1:=m1 div 100;
n2:=m1 mod 10;
n3:=(m1-n1*100-n2) div 10;
if n1=n2 then if n1=n3 then writeln('vse =');
if n1=n2 then writeln('1 i 3 =');
if n2=n3 then writeln('2 i 3 =');
if n1=n3 then writeln('1 i 2 =')
else writeln('<>');
END.
Проверяйте, что непонятно - спрашивайте.
Можно чуть поправить вывод, чтобы когда vse =, не вылезали 1 i 3, 1 i 2, 2 i 3.
Да и вообще writeln'ов можно наставить и переменные назвать покрасивше. но это уж вы сами, думаю, справитесь. В VAR у меня тоже есть лишние переменные, переделывал старый свой код наспех =)
Всего хорошего.