到了万圣节,Tom要给小朋友们发糖,现在有两个小朋友,他们手里分别有x个糖和 y 个糖 (1<=x,y<=1e9),但是糖少的小朋友就会不开心,Tom 想让他们两个的糖一样多。Tom 的操作是这样的,第一次给他们其中一个小朋友发一个糖,第二次给他们其中一个小朋友两个糖,第三次给他们其中一个小朋友发三个糖,以此类推,问至少要多少次这两个小朋友的糖会变的一样多?输入两个数字,输入 x 和 y,表示两个小朋友刚开始所拥有的糖数。输出 Tom 要发多少次使得两个小朋友的糖一样多。
可以先求出两个小朋友初始的糖的数量差diff,如果diif为 0,则发糖次数为 0。如果diff 不为 0,则需要先计算如果连续给一个小朋友发糖,至少需要发几次才可以使小朋友的糖一样多或实现反超,记这个次数为n,发 n 次糖总共发的糖的数量为mount=(n*n+n)/2。 如果mount- diff为偶数,则最后发糖次数为n。若为奇数,发糖次数为 n+2。 因此输入:[1,4] 输出:2
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。