[Práctica diaria · Preguntas de programación] El plan de ahorro de Jinjin: ¿dónde está el 30 % restante?

Tema Descripción

El dinero de bolsillo de Jinjin siempre ha sido administrado por él mismo. Al comienzo de cada mes, mi madre le da a Jinjin 300 yuanes, y Jinjin presupuestará los gastos de este mes, y los gastos reales siempre serán los mismos que los del presupuesto. Para que Jinjin aprendiera a ahorrar, su madre le propuso a Jinjin que deposite los cien dólares completos con ella en cualquier momento, y agregará un 20 % a Jinjin al final del año. Por lo tanto, Jinjin hizo un plan de ahorro: al comienzo de cada mes, después de recibir el dinero de bolsillo de su madre, si espera tener más de 100 yuanes o exactamente 100 yuanes para fin de mes, pondrá los cien La mayor parte del dinero está depositado con mi madre, y el resto del dinero lo tengo en mis propias manos. Por ejemplo, a principios de noviembre, Jinjin todavía tenía 83 yuanes en sus manos y su madre le dio a Jinjin 300 yuanes. Jinjin espera gastar 180 yuanes en noviembre, por lo que ahorrará 200 yuanes con su madre y se quedará con 183 yuanes para ella. Para fines de noviembre, a Jinjin le quedarán 3 yuanes en sus manos. Jinjin descubrió que el principal riesgo de este plan de ahorro es que el dinero depositado en su madre no se puede retirar antes de fin de año. Es posible que al comienzo de un determinado mes, el dinero en manos de Jinjin más el dinero que le dio su madre este mes no sea suficiente para el presupuesto original de este mes. Si esto sucede, Jinjin tendrá que ahorrar dinero y ajustar el presupuesto este mes. Ahora juzgue si esto sucederá según el presupuesto mensual de Jinjin de enero a diciembre de 2004. Si no, calcule cuánto dinero tendrá Jinjin en sus manos a finales de 2004 después de que su madre le devuelva el dinero que normalmente ahorra más el 20% a Jinjin.

mi código

class Solution:
    def __init__(self) -> None:
        pass
    
    def solution(self, budgets):
        result = None

        # TODO: 请在此编写代码
        mom = 0
        my = 0
        f = 0
        for i in range(12):
            new = my + 300 - budgets[i]
            if new < 0 :
                f = -1-i
                return f
            yu = new//100*100
            mom += yu
            my = new - yu
            # print(i+1,mom,my,yu)
        result =  mom * 1.2 +my 
        # 考虑整数和小数
        left = str(result).split('.')[1]
        if int(left) == 0:
            result = int(result)
        return result

if __name__ == "__main__":
    budgets = []
    for i in range(12):
        try:
            budgets.append(float(input().strip().split()[0]))
        except: # 这个操作:case通过率:70.0%
            budgets.append(0.0)
    
    sol = Solution()
    result = sol.solution(budgets)

    print(result)

Descripción de entrada y salida

ingresar:

12 líneas de datos, cada línea contiene un número entero no negativo inferior a 350, que representan respectivamente el presupuesto de Jinjin de enero a diciembre.

producción:

un entero Si no hay suficiente dinero en un mes determinado durante la implementación del plan de ahorro, salida -X, y X indica el primer mes en que ocurre esta situación; de lo contrario, salida cuánto dinero estará en manos de Jinjin a finales de 2004 .

¿Dónde está el caso del 30% restante?

Me he encontrado con este problema dos veces. La tasa de aprobación fue del 50 % la última vez. Esta vez, se agregó el procesamiento de entrada vacía y la tasa de aprobación aumentó al 70 %.
Entonces, ¿dónde está el 30% restante?

Supongo que te gusta

Origin blog.csdn.net/qq_46319397/article/details/129460860
Recomendado
Clasificación