Houve alguns problemas na calculadora de taxas de impostos aqui que dependem de taxas definidas (especificamente as taxas federais dos EUA), mas nenhum que tenha feito isso para listas arbitrárias.
Sua tarefa é criar um programa ou função que faça uma lista arbitrária de faixas de impostos marginais e calcule o valor efetivo do imposto pago em um determinado valor da renda tributável.
Seu programa terá como entrada:
Npares de números no formulário(amt, rate), cada um representando um suporte de imposto.amté o valor do lucro tributável acima do qual a taxa de imposto começa a ser aplicada. Esses valores serão todos números inteiros e aparecerão em ordem crescente.rateé a taxa de imposto, expressa como uma porcentagem decimal de 0 a 100, inclusive.
O valor do lucro tributável, como um número inteiro não negativo.
Se nenhuma taxa for especificada para $ 0, presume-se que a taxa seja 0%.
Como alternativa, seu programa também pode levar como entrada duas listas (amt1, amt2, ...)e (rate1, rate2, ...), contendo os valores e taxas na mesma ordem.
Seu programa irá então a saída do imposto a pagar, quer para duas casas decimais, ou arredondado para baixo para a unidade de moeda inteiro mais próximo.
Um exemplo de entrada (os escalões de impostos canadenses mais recentes, de 2016, com o crédito tributário pessoal básico aplicado e nada mais):
11474 15
45282 20.5
90563 26
140388 29
200000 33
393216
E sua saída correspondente:
108357.07 or 108357
O programa mais curto em qualquer idioma para fazer isso vence.
(amt, rate), mas não altera fundamentalmente o problema para aceitar a outra lista, então eu o modificarei para que você possa.