各位兄弟,帮忙看下这个思考题,求桔子数有关问题

各位兄弟,帮忙看下这个思考题,求桔子数问题.
今日 活动下找了个思考题来做:
题目如下:
*思考题
日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将2520个桔子分给六个儿子。分完后父亲说

:“老大将分给你的桔子的1/8给老二;老二拿到后连同原先的桔子分1/7给老三;老三拿到后连同原先的

桔子分1/6给老四;老四拿到后连同原先的桔子分1/5给老五;老五拿到后连同原先的桔子分1/4给老六;

老六拿到后连同原先的桔子分1/3给老大”。结果大家手中的桔子正好一样多。问六兄弟原来手中各有多

少桔子?

分析:
int sum = 2520 //桔子总数
int avge = 420; // 2520/6 最后平均数 = 420
int a[6];//保存6个兄弟数
这里我用试探法来做
设置 a[0] = 某个数;
那么 (a[1] - a[0]/8)*(6/7) = 420 转换下 a[0]= avge *(7/6) + a[0]/8
  a[2] = 420*(6/5)+ [a1]/7;
  得出公式如下 a[j] = 420*( (8-j)/(8-j-1) ) + a[j-1]/(8-j+1);
  到最后 a[0] = a[0]*7/8+a[5]/3 =420 时 a[0]即满足要求 输出a[0],a[1].......

代码如下:

#include<stdio.h>
#include<stdlib.h>
int main()
{
int sum = 2520;
int avge = 2520/6;
int a[6] = {0} ; 
int b =1; //用于中断循环
int momey= 0;
//试探法 
for( int i = 1 ; b && (i < sum) ; i++)
{
a[0] = i; //1号
if((a[0]%8)!=0) //要保证其为整数,过滤掉不能被8整除的数
{
continue;
}
for( int j = 1; j <= 5 ; j++)
{
a[j] = avge*((8-j)/(8-j-1))+a[j-1]/(8-(j-1)); //剩下弟兄的值
if( j == 5)
{
momey = (a[0]*7)/8+a[j]/3; //看第一位的值符合要求吗?
if(momey == avge)
{
  b = 0;
}
}
}
}
printf("%d,%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4],a[5]);
system("pause");
return 0;
}

但我最后输出结果为: 2519,734,524,507,521,550
明显是错的,但我上面那里出错了啊,怎么试探不出正确值啊.
  
 

------解决方案--------------------
你这试探没看懂,挺简单的一个题:

C/C++ code


#include <stdio.h> 
#include <stdlib.h> 
int main() 
{ 

    int avge =  2520/6; 
    int a[6] = {0};  
    int left = 0; 

    for( int i=0; i<6; i++) 
    { 
        if (i==0)
        {
            //老大的是老六最后给了1/3,也就是420*1/2 = 210个
           a[i] = (avge-210)*(8-i)/(7-i) - left;
           left = a[i] + left - (avge-210);
        }
        else
        {
            a[i] = avge*(8-i)/(7-i) - left;
            left = a[i] + left - avge;
        }
    } 
    printf("%d,%d,%d,%d,%d,%d\n",a[0],a[1],a[2],a[3],a[4],a[5]); 
    system("pause"); 
    return 0; 
}

------解决方案--------------------
这题目还需要编程来实现啊?

倒推就可以了:
总共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;

....

以此类推!