Прогрессивный налог

PHOTO EMBED

Tue Apr 26 2022 12:27:59 GMT+0000 (Coordinated Universal Time)

Saved by @Gringi #c++

#include <iostream>

using std::cout;
using std::cin;
using std::endl;

int main() 
{
int AmountofIncome; 
int taxrate = 0;
  
cout << "Введите размер дохода: ";
cin >> AmountofIncome;

if (AmountofIncome > 50000) {
  taxrate += (AmountofIncome - 50000) * 30 / 100;
  AmountofIncome = 50000;
  } 
  if (AmountofIncome > 10000) {
  taxrate += (AmountofIncome - 10000) * 20 / 100;
  AmountofIncome = 10000;
  }
  taxrate += AmountofIncome * 13 / 100;

  cout << "Размер налога будет составлять " << taxrate << " рублей" << endl;
}
content_copyCOPY

В последнем уроке мы писали программу, вычисляющую сумму налога по прогрессивной шкале в зависимости от полученного заработка: 13% на доход до 10000, 20% на доход от 10000 до 50000, 30% на доход выше 50000. Однако во многих странах, использующих такую шкалу, эта сумма вычисляется более сложным способом. А именно, налоговая ставка 30% на доход выше 50000 означает, что 30% уплачивается не со всей суммы, а лишь с той ее части, которая превосходит 50000. Аналогично, ставка 20% на доход от 10000 до 50000 обязывает уплатить 20% лишь с той части суммы, которая превосходит 10000, но не превосходит 50000. Так, например, с дохода 100000 придется заплатить такой налог: 30% * (100000-50000) + 20% * (50000-10000) + 13% * 10000 = 15000+8000+1300=24300. А с дохода 30000 - такой: 20% * (30000-10000) + 13% * 10000 = 4000+1300=5300. Напишите программу, которая спрашивает у пользователя его доход и рассчитывает сумму налога для него по вышеописанным правилам.