题意:一首歌有t秒,开始下载了s秒,然后开始播放,q表示经过q秒可以下载q-1秒的歌曲,每次听到下载进度的地方就重新播放,问需要重播几次可以听到完整的歌。
题解:数学题,看解法才理解。(q-1)/q是下载速度,如果已经有了s秒音乐,当前实际可以听的长度S=s+s*(q-1)/q+s*(q-1)/(q)*(q-1)/q+…=s*q,那么下一次从头播放的时候实际可以听的S = S*q,所以可以递推直到S >= t。

#include <stdio.h>

int main() {
    int t, s, q;
    scanf("%d%d%d", &t, &s, &q);
    int res = 0;
    while (s < t) {
        s *= q;
        res++;
    }
    printf("%d\n", res);
    return 0;
}