P8012 题解

· · 题解

题目传送门

我们假设最大金币数是 "1",那么 O 所占最大金币数的比是 \dfrac{N-1}{N} ,最大金币数就是O\div\dfrac{N-1}{N}

接下来要计算最小金币数,如果 N 可以被最大金币数整除,也就是可以完全平均分的时候,最小金币数就是最大金币数-1。

代码献上:

#include <iostream>
#include <cstdio>
//这些不用说吧
int n,o;//见题意
int Max,Min;//Max为最大金币数,Min为最小金币数
int main() {
    scanf("%d%d",&n,&o);
    Max=o/(n-1.0)*n;//根据如上公式算出最大金币数
    if(Max%n==0) Min=Max-1; 
    //如果n能被Max整除,则Min是Max-1
    else Min=Max;//否则为Max
    printf("%d %d",Min,Max);//华丽输出
    return 0;//完美结束
}

第一次发题解,心情蛮激动的。

——The End