早教吧 育儿知识 作业答案 考试题库 百科 知识分享

急!!!求c语言编程高手:c语言编程问题:巧分橘子。一家农户以果园为生,一天,父亲拿出一堆橘子,共2520个,准备分给他的6个儿子。父亲按事先写在一张纸上的数字把这堆橘子分完,

题目详情
急!!!求c语言编程高手:c语言编程问题:巧分橘子。
一家农户以果园为生,一天,父亲拿出一堆橘子,共2520个,准备分给他的6个儿子。父亲按事先写在一张纸上的数字把这堆橘子分完,每个人分到的橘子的个数都不相同。然后他说:“老大,把你分到的橘子分1/8给老二,老二拿到后,连同原来的橘子分1/7给老三,老三拿到后,连同原来的橘子分1/6给老四,以此类推,最后老六拿到后,连同原来的橘子分1/3给老大,这样,你们每个人分到的橘子就一样多了。”问兄弟6人原先各分到多少只橘子。
请将兄弟6人的橘子数存储到一维数组中,并按照下列各式输出:
x[1]=240
x[2]=460
x[3]=434
x[4]=441
x[5]=455
x[6]=490
▼优质解答
答案和解析
主题思想:a[i]原有的橘子等于a[i]现有的加上给别人的再减去得到的;但是其中除了老大外都是先得到后给出,而老大是先给出后得到运算顺序要弄清楚!所以a[0]的计算方法不太一样!
#include
void main()
{
int a[6],b[6],i;
for(i=0;i<6;i++)
{
a[i]=2520/6;
b[i]=8-i;
}
a[0]=a[0]-(a[5]/(b[5]-1));//计算出老大得到老六的之前的橘子数量,为了循环中计算老二得到 //老大的橘子数量;
for(i=5;i>=1;i--)
{
a[i]=a[i]+(a[i]/(b[i]-1))-(a[i-1]/(b[i-1]-1));
}
a[0]=a[0]*b[0]/(b[0]-1);//计算老大的橘子分了两步;
for(i=0;i<6;i++)
printf("x[%d]=%d\n",i+1,a[i]);
}