【洛谷 P8599】[蓝桥杯 2013 省 B] 带分数 题解(数学+全排列+暴力枚举)

90 阅读1分钟

思路

带分数是一种特殊的分数形式,形如a+bca + \frac{b}{c},其中aa是整数,bc\frac{b}{c}是真分数。这种形式的特点是,整数部分和分数部分可以分开计算。

题目要求使用1到9的每个数字恰好一次。首先对1到9的数字进行全排列,然后在每一种排列中,通过暴力枚举所有可能的三个数的组合,检查是否满足a+bc=na + \frac{b}{c} = n的条件。

首先,定义一些变量。n 是输入的整数,ans 是结果的计数,v1 是一个向量,存储了1到9的数字。

接着,读取输入的整数n。使用do-while循环,对向量v1进行全排列。在每一种排列中,通过三层嵌套循环,将排列的数字组合成三个数a、b和c。如果b能被c整除,且a加上b除以c等于n,则结果计数ans增加1。

最后,输出结果计数ans。


AC代码