这样哈..........其实呢.........
问题就是,最后那个逻辑完完全全是用来误导人的。
不知道大家发现一个问题没有,一开始的30,到最后的27,两个数都是3的倍数也即是说可以被3整除,而之后那个25和5就是问题所在。在整数范围内,这两个数无法被3整除,所以如果是将5元退与3人,将会出现2、2、1的分摊现象,而现在那个可爱的爆的Waiter擅自将5元之中的2元非法私有化,就造成了原来的3的非倍数变为3的倍数,这之间必然存在运算差异。这个道理与计算机程序设计中的整除运算相似,是忽略余数的运算。不信大家可以试试下列代码:
#include<stdio.h>
void main()
{
int a,b,c;
a=28;
b=3;
c=a/b;
printf("%d\n",c);
}
看看结果是不是9。
其实最主要的误区就是,将剩下的3元均摊是错误的,因为Waiter手里还拥有2元,也就是说,在均摊的过程中虽然没有少钱,但实际上有1元被算没了而已。