java日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将2520个桔子分给六个儿子。分完后父亲说:“老大将分给你的桔子的1/8给老二;老二拿到后连同原先的桔子分1/7给老三;老三拿到后连同原先

题目:日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将2520个桔子分给六个儿子。分完后父亲说:“老大将分给你的桔子的1/8给老二;老二拿到后连同原先的桔子分1/7给老三;老三拿到后连同原先的桔子分1/6给老四;老四拿到后连同原先的桔子分1/5给老五;老五拿到后连同原先的桔子分1/4给老六;老六拿到后连同原先的桔子分1/3给老大”。结果大家手中的桔子正好一样多。问六兄弟原来手中各有多少桔子?

网上找了几个c语言的,借鉴(抄袭)了一下(全部),脸红.
思路:
1桔子一样多,平均数2520/6,每个人420个;
2老六等人(除了老大)都是"连同原先的桔子"分给下一个人,其中老六分走1/3之后为420个,因此可以得出分走之前的数量为420/(2/3)=630,所以分给老大的是630-420=210个;
3找规律依次分1/8,1/7,1/6,1/5,1/4,1/3;
4一圈分完,老大得到老六的210个满足平均数420,说明最开始老大分给老二之后只剩420-210=210个,210所占比例为1-(1/8)=7/8;所以老大原有210/(7/8)=240个;
5得出规律 :
老大 240 个 减去 (240-210)=30 剩余210
老大原有210/(7/8)=240个
老二 剩余420
反推 有 420/(6/7)=490个
原有490-30=460
老三 剩余420
反推 有 420/(5/6)= 个
原有
老四 剩余420
反推 有 420/(4/5)= 个
原有
老五 剩余420
反推 有 420/(3/4)= 个
原有
老六 剩余420
反推 有 420/(2/3)= 个
原有

class Test34{
	public static void main(String []args){
		int avge=2520/6;//平均每人
		int a[]=new int[6];
		int left=0;
		for(int i=0;i<6;i++){
			if(i==0){
				a[i]=(avge-210)*(8-i)/(7-i)-left;
				/* 老六拿到后连同原先的桔子分1/3给老大,
				所以老六没分给老大之前是420*3/2=630,
				分给老大的是630/3=210;  */
				left=a[i]+left-(avge-210);
				
			}
			else{
				a[i]=avge*(8-i)/(7-i)-left;
			left=a[i]+left-avge;
			}
			System.out.println(i+1+","+a[i]);
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值