Jawa / Говнокод #25998 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
import java.util.Scanner;

public class ComputeTax {

public static void main(String[] args) {
// Create a Scanner
Scanner input = new Scanner(System.in);

// Prompt the user to enter filing status
System.out.print(
    "(0-single filer, 1-married jointly or qualifying widow(er)",
    + "\n2-married separately, 3-head of household)\n" +
    "Enter the filing status: ");
int status = input.nextInt();

// Prompt the user to enter taxable income
System.out.print("Enter the taxable income: ");
double income = input.nextDouble();

// Compute tax
double tax = 0;

if (status == 0) {// Compute tax for single filers
    if (income <= 8350)
          tax = income * 0.10;
    else if (income <= 33950)
          tax = 8350 * 0.10 + (income - 8350) * 0.15;
    else if (income <= 82250)
          tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
         (income - 33950) * 0.25;
    else if (income <= 171550)
          tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
         (82250 - 33950) * 0.25 + (income - 82250) * 0.28;
    else if (income <= 372950)
          tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
          (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 +
          (income - 171550) * 0.33;
    else
          tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
         (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 +
         (372950 - 171550) * 0.33 + (income - 372950) * 0.35;
}
else if (status == 1) {
// Left as exercise
// Compute tax for married file jointly or qualifying widow(er)
}
else if (status == 2) {
// Compute tax for married separately
// Left as exercise
}
else if (status == 3) {
// Compute tax for head of household
// Left as exercise
}
else {
    System.out.println("Error: invalid status");
    System.exit(1);
}
// Display the result
System.out.println("Tax is " + (int)(tax * 100) / 100.0);

}

Запостил: Ksyrx Ksyrx, (Updated )

Комментарии (52) RSS

    • Сколько ты ноложил!

      При изменении ставки строки 24-41 придётся кромсать и несколько раз перепроверять, чтобы не ошибиться?
      Ответить
    • Нет, не похоже что это стертор. https://github.com/maximhesed за несколько минут я его гитхаб нагуглил, сишечка в основном. У стертора был бы поцкал и дельфи
      Ответить
          • Но в любом случае это не Стептоп: Стептопа настолько выворачивает от консольных программ, что он даже с файки не стал бы отправлять код, в котором есть вывод в консоль.
            Ответить
            • стептоп, кроме того, программировать умеет на уровне написания хеллоу ворлд

              зто в гомопедофелии он профи
              Ответить
                • И первым подарком была тишина...
                  В глубоком сне, откуда ты родом
                  Пожилой садовник, который охранял вечно
                  Долг нетленного...
                  Старик тех дней...
                  От мечты к мечте, где ты живешь.
                  Ответить
          • слшы, сам ты хуйня с черепом охуел блядь
            нахуй я тогда ставил эту аву? чтобы её хуйнёй с черепо назвали? мудак бля сука ээ
            Ответить
                  • Я не понимаю, что ты за этого петуха так заступаешься? Ничего что он на php пишет? А то, что он в 4-х-буквенном не ЯП пытался матчить открытые теги - тебе не интересно? Ну и сам иди на хуй, тогда, юзер. Что ты, вообще, делаешь в этом разделе? Давай, free отсюда.
                    Ответить
  • import java.util.stream.Stream;
    import java.util.stream.DoubleStream;
    import java.util.Arrays;
    import java.util.function.Function;
    
    public class ComputeTax {
        static final double[] percents   = {0.10, 0.15, 0.25, 0.28, 0.33, 0.35};
        static final double[] thresholds = {8350, 33950, 82250, 171550, 372950};
    
        public static void main(String[] args) {
            double[] partialSums = Stream.iterate(0, n -> n + 1).limit(5).mapToDouble(
                (i) -> thresholds[i] * (percents[i] - percents[i + 1])
            ).toArray();
    
            Function<Double, Double> computeTax = (income) -> {
                int level = (int)Arrays.stream(thresholds).reduce(0, (x, y) -> x + new Boolean(income > y).compareTo(false));
    
                return Arrays.stream(partialSums).limit(level).reduce(0, (x, y) -> x + y) + income * percents[level];
            };
    
            double tax = computeTax.apply(100000.0);
            double controlValue = 8350 * 0.10 + (33950 - 8350) * 0.15 +
                (82250 - 33950) * 0.25 + (100000 - 82250) * 0.28;
            System.out.println("Tax is " + (int)(tax * 100) / 100.0);
            System.out.println("Control value is " + (int)(tax * 100) / 100.0);
        }
    }


    https://ideone.com/pJJBbr

    Куик!
    Ответить
  • Я за «итеративные алгоритмы».
    _PERCENTS   = 0.10, 0.15, 0.25, 0.28, 0.33, 0.35
    _THRESHOLDS = 8350, 33950, 82250, 171550, 372950
    
    
    def compute_tax(income):
        tax = 0
        for percent, threshold, prev_threshold in zip(_PERCENTS, _THRESHOLDS, (0,) + _THRESHOLDS):
            if income <= 0:
                break
            income_part = min(income, threshold - prev_threshold)
            tax += income_part * percent
            income -= income_part
        
        if income > 0:
            tax += income * _PERCENTS[-1]
        
        return tax

    https://ideone.com/KI7dLZ
    Ответить
    • Я бы код который делит зп на куски выделил в отдельную функцию и оттестировал.
      Ответить
    • То ли дело Россия: В зависимости от налоговой ставки нужное подчеркнуть.
      function NDFL()
      return 0.13;
      end
      
      function NDFL_noRF()
      return 0.30;
      end
      
      function PFR()
      return 0.22;
      end
      
      function PFR3_1()
      return 0.02;
      end
      
      function PFR3_2()
      return 0.04;
      end
      
      function FOMS()
      return 0.051;
      end
      
      function FSS_NS()
      return 0.009;
      end
      
      function FSS()
      return 0.029;
      end
      Ответить
          • Торт, как ты там живешь?
            Завязывай может с 1Сной парашой?
            Ответить
                • Геймдеве очень нестабильный. Поэтому я там не вижу смысла и работать за бабос. Может быть только на mail.ru работать на их тарантуле, но чем это лучше 1с?
                  Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8