Niuniu le encanta beber

Niuniu le encanta beber

Descripción del Título

Niuniu es un borracho y le encanta beber. Una botella de vino cuesta RMB m, dos botellas se pueden cambiar por una botella de vino, cuatro tapas de botellas se pueden cambiar por una botella de vino, ahora hay n RMB, ¿cuántas botellas de vino se pueden beber?

(Nota: No hay función de préstamo, es decir, no está permitido pedir prestada una botella de vino y cambiar la botella por devolución después de beber)

Análisis de temas

Obviamente, esta es una pregunta de la Olimpiada de Matemáticas de la escuela primaria. Use botellas y tapas de botellas para el vino. La idea es actualizar el valor de la tapa de la botella y el valor de la botella y la cantidad de vino que se bebe de vez en cuando, y luego completar el ciclo hasta el final (es decir, no hay suficientes tapas cuatro, no hay suficientes botellas vacías Dos)

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n ,m;
    cin>>m>>n;
    int ans = n / m;//第一步就更新喝的酒的个数
    int g = ans;//盖子数
    int p = ans;//瓶子数
    while(1)//直接循环,找机会break就可
    {
        if(p < 2 && g < 4) break;//跳出循环
        else
        {
            if(p >= 2)//看看瓶子能不能换酒
            {
                ans += p / 2;//更新的是喝的酒的数
                g += p / 2;//记得把盖子的数也更新一下
                p = p / 2 + p % 2;//因为你花了空瓶子,但又换了空瓶子,就得记录好空瓶子的数量,一部分是换空瓶子剩下的,另一部分是换了新的酒得到的空瓶子
            }
            if(g >= 4)//同上
            {
                ans += g / 4;
                p += g / 4;
                g = g / 4 + g % 4;
            }
        }
    }
    cout<<ans;//输出ans就可以了
}

Supongo que te gusta

Origin blog.csdn.net/weixin_51216553/article/details/110882095
Recomendado
Clasificación