六兄弟原来手中各有多少桔子?

桔子分配谜题解析
本文探讨了一道由日本数学家提出的桔子分配问题。六个兄弟通过特定比例互相交换桔子,最终每人拥有相同数量的桔子。文章采用逆向思维进行解答,并提供了一个C语言实现的解决方案。

题目:

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

分析:

倒推就可以了:
总共2520,分到最后没人是2520/6=420
老六拿到后连同原先的桔子分1/3给老大,所以老六没分给老大之前是420*3/2=630,分给老大的是630/3=210;
老大最后也是420,所以老大在分给老二后的橘子数为420-210=210;
而老大将分给你的桔子的1/8给老二,故老大未分给老二前的橘子数为210*8/7=240;
老二拿到后连同原先的桔子分1/7给老三,设老二本身的橘子树为x,则(x+30)*6/7=420;老二本身的橘子数为460;

....

以此类推!

#include<stdio.h>
int main() 
{
	int i; 
	float a[6]; 
	for(i=0;i<6;i++) 
	 a[i]=420.0; 
 for(i=5;i>0;i--) 
 { 
   a[i]=a[i]*(8-i)/(7-i); 
  // printf("%-6.0f\n",a[i]); 
  } 
 a[0]=210.0*8/7; 
 for(i=5;i>0;i--) 
 {
 	a[i]-=a[i-1]/(9-i); 
 }
 printf("原来六兄弟手中的桔子为:\n");
  for(i=0;i<6;i++) 
  {
  	printf("%d-->%-6.0f\n",i+1,a[i]); 
  }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值