平安夜卖苹果!!!

刚学完数组,现在就好好用一下吧。

父亲推出一车苹果,共2520个,准备分给他的6个儿子。父亲按事先写在一张纸上的数字把这堆苹果分完,每个人分到的苹果个数都不相同。他说:“老大,把你分到的苹果的1/8给老二,老二拿到后,连同原来的苹果分1/7给老三,老三拿到后,联通原来的苹果的1/6给老四,以此类推,最后老六拿到后连同原来的苹果分1/3给老大,这样,你i没每个人分到的苹果就一样多了。”问兄弟6人原先各分到多少只苹果?

首先我们把各个兄弟每人原本拿到的苹果数目计作x[6],把他们得到别人的苹果后为分出去时的数目记作y[6](除了老大,老大是例外)(换句话说,y[i]的含义是指分出去苹果的时要乘以分数的那个的苹果数,也就是计算分出去苹果数目时乘以分数的那个整数),将平均数记作s.

s=2520/6;

我们先得出y[i]=s*(8-i)/(7-i):

从老二开始看,老二得到老大分的苹果后,没在分出去前有y[i]个苹果,老二分出他的1/7后,就有了s个,也就是平均数个;因此可以写出式子s=y[i]*1/(8-i);因为我们要找的是y[i]的值,所以变换一下,就得到y[i]=s*(8-i)/(7-i)了。

由于上一步我们找了老二到老六的y[i]值,缺少了老大的值,因此,我们要单独写一段代码,算y[0]=x[0]=(s-y[5]*1/3)*8/7:

我们发现,老大在分出苹果时,还未得到老六的苹果,因此,可以得到y[i]=x[i];我们在这里要用到y[5]来计算,由于老大分出苹果后,还剩余y[0]*7/8的数量,再得到老六的y[5]*1/3的数量,现在就有了s个了,写出式子:s=y[0]*7/8+y[5]*1/3;我们的目标是y[0],变换一下就是y[0]=(s-y[5]*1/3)*8/7了.

接下来就是求x[i]了:

按题目顺序分析我们可以得到y[i]=x[i]+y[i-1]*1/(9-i);由于目标为x[i],变换一下就是x[i]=y[i]-y[i-1]*1/(9-i)。

最后后最,我们输出x[i],就是我们想要的答案啦

#include<stdio.h>
int main()
{
	int s,i,n;
	int x[6]={0};
	int y[6]={0};
	scanf("%d",&n);
	s=n/6;
	for(i=1;i<6;i++)
	{
		y[i]=s*(8-i)/(7-i);
	}
	y[0]=x[0]=(s-y[5]*1/3)*8/7;
	for(i=1;i<6;i++)
	{
		x[i]=y[i]-y[i-1]*1/(9-i);
	}
	for(i=0;i<6;i++)
	{
		printf("%d\n",x[i]);
	}
	return 0;
 } 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值