CCF-CSP 201612-2 Cálculo salarial

Descripción del problema
  La compañía de Xiaoming paga a Xiaoming todos los meses, y el salario de Xiaoming es el salario después de pagar el impuesto sobre la renta personal. Supongamos que su salario antes de impuestos de un mes (el salario después de deducir cinco seguros y un oro, antes de la deducción de impuestos) es S yuan, entonces su impuesto sobre la renta personal debe calcularse de acuerdo con la siguiente fórmula:
  1) El punto de partida para el impuesto sobre la renta personal es de 3.500 yuanes, Si S no supera los 3500, no se paga ningún impuesto, y el impuesto sobre la renta personal se calcula para la parte superior a 3500 yuanes, de modo que A = S-3500 yuanes;
  2) La parte de A que no supera los 1500 yuanes, la tasa impositiva es del 3%;
  3) La A supera los 1500 La tasa impositiva para la parte que no excede los 4500 yuanes es del 10%;
  4) La parte para A que excede los 4500 yuanes no excede los 9000 yuanes, la tasa impositiva es del 20%;
  5) La parte para A que excede los 9000 yuanes y no excede los 35000 yuanes, la tasa impositiva es del 25%;
  6) La tasa de impuestos para la porción de A que excede los 35,000 yuanes pero que no excede los 55,000 yuanes es del 30%;
  7) La porción de A que excede los 55,000 yuanes y que no excede los 80,000 yuanes es la tasa de impuestos del 35%;
  8) La porción de A que excede los 80,000 yuanes es la tasa de impuestos del 45%;
  por ejemplo, Si el salario antes de impuestos de Xiaoming es de 10,000 yuanes, A = 10000-3500 = 6500 yuanes, de los cuales el impuesto que no exceda 1500 yuanes es 1500 × 3% = 45 yuanes, y el impuesto que exceda 1500 yuanes no es más de 4500 yuanes -1500) × 10% = 300 yuanes, e impuestos por pagar más de 6.500 yuanes (6500-4500) × 20% = 400 yuanes. Se pagó un total de 745 yuanes, y el ingreso después de impuestos fue de 9255 yuanes.
  Se sabe que el ingreso después de impuestos de Xiaoming este mes es T yuan, ¿cuánto es su salario antes de impuestos S?
Formato de entrada
  La primera línea de entrada contiene un entero T, que significa el ingreso después de impuestos de Xiaoming. Todos los datos de evaluación aseguran que el salario antes de impuestos de Xiaoming es de cien.
Formato de salida
  Emite un entero S, que representa el salario antes de impuestos de Xiao Ming.
Entrada de muestra Salida de muestra
9255 10000 Tamaño y acuerdo del   caso de uso de evaluación Para todos los casos de uso de evaluación, 1 ≤ T ≤ 100000.



Ideas para resolver problemas:
100% a 100% de juicio es igual a T después de deducir el impuesto sobre la renta personal.
Resumen de experiencia:

Código C ++:

#include<bits/stdc++.h>
using namespace std;
double A[6] = {1500*0.03,(4500-1500)*0.1,(9000-4500)*0.2,(35000-9000)*0.25,
			(55000-35000)*0.3,(80000-55000)*0.35};
void check(int n,int t,int ans){
	int backans = ans;
	switch(n){
		case 6:ans -= (ans-3500-80000)*0.45;break;
		case 5:ans -= (ans-3500-55000)*0.35;break;
		case 4:ans -= (ans-3500-35000)*0.3;break;
		case 3:ans -= (ans-3500-9000)*0.25;break;
		case 2:ans -= (ans-3500-4500)*0.2;break;
		case 1:ans -= (ans-3500-1500)*0.1;break;
		case 0:ans -= (ans-3500)*0.03;break;
	}
	for(int i = 0;i<n;i++){
		ans -= A[i];
	}
	if(ans == t){
		printf("%d",backans);
		exit(0);
	}
}
int main() {
	int t;
	scanf("%d",&t);
	if(t<=3500){
		printf("%d",t);
		return 0;
	}
	for(int ans = t/100*100;;ans += 100){
		if(ans>3500+80000){
			check(6,t,ans);
		}else if(ans>3500+55000){
			check(5,t,ans);
		}else if(ans>3500+35000){
			check(4,t,ans);
		}else if(ans>3500+9000){
			check(3,t,ans);
		}else if(ans>3500+4500){
			check(2,t,ans);
		}else if(ans>3500+1500){
			check(1,t,ans);
		}else {
			check(0,t,ans);
		}
	}
	return 0;
}
Publicados 111 artículos originales · ganado elogios 2 · Vistas 3533

Supongo que te gusta

Origin blog.csdn.net/m0_38088647/article/details/100676097
Recomendado
Clasificación