Para qualquer valor de páginas do livro e qualquer velocidade, podemos calcular nosso tempo de leitura da seguinte maneira:
Tempo de leitura=Velocidade de leituraPaˊginas do livro
No enunciado, temos duas velocidades distintas onde, na velocidade mais rápida, economizamos uma quantidade de dias estabelecida pela entrada. Em outras palavras, podemos formar uma equação tal qual
Velocidade lentaPaˊginas do livro=Velocidade raˊpidaPaˊginas do livro+Tempo economizado
Considerando velocidade lenta como Q, tempo economizado como D e velocidade rápida como P, podemos descobrir nossa variável de interesse que são as páginas do livro (que podemos chamar de L). Logo
QL=PL+DLP=LQ+DPQLP−LQ=DPQL(P−Q)=DPQL=P−QDPQ
Na linguagem Python, mudei a exceção a ser capturada para ValueError pois o programa deve parar de executar quando não conseguirmos mais receber os três valores.
#include <stdio.h>
int main(){
int Q, D, P, L;
while(scanf("%d", &Q)){
if(!Q) break;
scanf("%d %d", &D, &P);
L = (Q * D * P)/(P - Q);
printf("%d pagina", L);
if(L > 1) printf("s");
printf("\n");
}
return 0;
}
#include <iostream>
using namespace std;
int main(){
int Q, D, P, L;
while(cin >> Q){
if(!Q) break;
cin >> D >> P;
L = (Q * D * P)/(P - Q);
cout << L << " pagina";
if(L > 1) cout << "s";
cout << endl;
}
return 0;
}
var input = require('fs').readFileSync('/dev/stdin', 'utf8');
var lines = input.trim().split('\n');
while(lines.length){
let [Q, D, P] = lines.shift().trim().split(' ').map((x) => parseInt(x));
if(!D) break;
L = Math.floor((Q * D * P)/(P - Q));
console.log(`${L.toFixed(0)} pagina${L > 1 ? 's' : ''}`);
}
while True:
try:
Q, D, P = [int(x) for x in input().strip().split(' ')]
L = (Q * D * P)//(P - Q)
print(f"{L} pagina{'s' if L > 1 else ''}")
except ValueError:
break