[蓝桥杯][2014年第五届真题]分糖果 (C++代码)

原题链接:

解题思路:

创建一个数组,每一个数组元素代表有一个小朋友,利用while循环的判断来筛选出跳出条件。

可以考虑使用vector创建动态的数组,这样可以节省一些空间资源,但是本题对此要求不是很严格,我在这里就不用vector来写了,如果想了解vector可以baidu或者看我写的一些其他的题解。

在循环中思考: 1.首先判断是否完全相等,如果是相等就不需要计算了。

2.全体减半,由于大家都是偶数所以直接除以二就可以了。

3.全体成员加上前面哪个减半的数,相当于把自己的糖果分享给了自己左手边的小朋友,注意这里最后一个和第一个需要借助一个中间变量进行传递。

4.全体判断奇偶,如果是奇数就+1,同时创建一个计数器也+1,再度进行循环,等循环结束的时候输出计数器即可。

参考代码及全文见

经验分享 程序员 微信小程序 职场和发展