这道题目的基本思想就是必须求前n-1个数的最大公约数。
比如这边为了方便大家理解,给出一组测试数据。
3
3 1
5 1
7 2
10 1
这组数据的最终结果是121
下面我们就来分析一下。
定义一个函数gongbeishu()求前n-1项的最小公倍数。
首先,我们定义变量 gbs 表示前n-1个数的最小公倍数。
定义sum来表示程序运行中猪的头数。
初始化sum=3+1
gbs=3
处理第二组数据后
sum = gbs+gbs+gbs+gbs+1 = 16
gbs = gongbeishu(3,5) = 15
处理第三组数据的时候
sum = 16
gbs = gongbeishu(15,7) = 105
处理第四组数据的时候
sum = gbs+sum = 121;
gbs = gongbeishu(15,7)
如果下面还有数据的话,依此类推。
特别注意的是,运算必须使用long long 类型,否则会超出范围。