小习题:巧分苹果

news/2024/12/23 1:31:41/

一.题目概要:

一家农户以果园为生,一天,父亲推出一车苹果, 共2520个,准备分给他的6个儿子。父亲按事先写在一张纸上的数字把这堆苹果分完,每个人分到的苹果个数都不相同。他说:“老大,把你分到的苹果的1/8给老二,老二拿到后,连同原来的苹果分1/7给老三,老三拿到后,连同原来的苹果的1/6给老四,依此类推,最后老六拿到后,连同原来的苹果分1/3 给老大,这样,你们每个人分到的苹果就一样多了。” 问兄弟6人原先各分到多少只苹果?运行结果如图4.8所示。

二.算法分析: 

(1)由题可知父亲用完这中方法后,各兄弟的苹果数已是平均数。故我们可通过这个平均数来反推过去,求出原本各兄弟的苹果数。设置一个变量为s=2520/6。

(2)我们得知道每人的原先苹果数与得到哥哥的苹果但还没分给弟弟时的苹果数。为什么呢?这两个数与s之间有联系,而且原先苹果数是我们所求的数字。所以我们可以分别设置两个数组来存这两个数(分别为x[ i ]与y[ i ])。其中,我们得知道这些兄弟里有一位是特殊的,那就是老大,他的x[ i ]与y[ i ]是相等的。

(3)由题可知,老二将他得到哥哥分的苹果后的总数的1/7分给老三后,他的苹果数便为平均数,所以可知y[ i ]*6/7=s;老三将他得到哥哥分的苹果后的总数的1/6分给老四后便为平均数,所以y[ i ]*5/6=s.......依此类推,可知从老二后,有一个规律,那就是y[ i ]=s*(8-i)/(7-i)(i>=1)。所以我们可以通过一个for循环语句来求出除老大外其他兄弟的y[ i ]。

(4)通过第三步后,我们也可以求出老大的y[ i ]。老大是先将自己的1/8苹果分给老二以及收到老六的1/6苹果后才为平均数,所以y[0]*7/8+y[5]*1/3=s。

(5)算出y[ i ]后,我们可以算出x[ i ]。他们之间有一个关系,就是y[ i ]等于x[ i ]加上从哥哥那得到的苹果。此处拿老二为例,y[1]=x[1]+y[1]*1/8。所以可得出一个公式x[i]=y[i]-y[i-1]/(9-i)。

(6)最后再利用一个for循坏语句将他们分别打印出。

三.程序代码:

#include<stdio.h>int main()
{//用来存储兄弟原本得到的苹果数int x[6]={0,};//用来存储从哥哥分到的苹果且还没分给弟弟时的苹果数(老大特例)int y[6]={0,};//s用来存储采用父亲的方法之后,各兄弟所得的平均苹果数int s,i;s=2520/6;//除老大外,其他兄弟从比自己大的兄弟那得到的苹果数for(i=1;i<6;i++) {y[i]=s*(8-i)/(7-i);}y[0]=x[0]=(s-y[5]/3)*8/7;//老大的苹果数//除老大外原先苹果数for(i=1;i<6;i++){x[i]=y[i]-y[i-1]/(9-i);}//输出每人的苹果数for(i=0;i<6;i++){printf("老%d原先的苹果数为%d\n",i+1,x[i]);}return 0;
}

四.结果:


http://www.ppmy.cn/news/783047.html

相关文章

C语言编写一个贪吃蛇的游戏

以下是一个简单的贪吃蛇游戏的C语言代码示例: #include <stdio.h> #include <stdlib.h> #include <conio.h>#define SCREEN_WIDTH 80 // 屏幕宽度

iOS屏幕旋转及其基本适配方法

屏幕旋转示例.jpeg 前段时间抽空总结了一下iOS视频播放的基本用法&#xff0c;发现这其中还有一个我们无法绕过的问题&#xff0c;那就是播放界面的旋转与适配。的确&#xff0c;视频播放与游戏类型的App经常会遇到这个的问题。由于至今接手的项目中不常涉及这块知识疏于总结&…

iOS -- ipad横屏应用的设置

1.支持横竖屏&#xff0c;但默认打开时是横屏 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES]; //Landscape开头的是横屏 -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfa…

ipad和iphone横竖屏设置

最近做了个支持iphone和ipad的小应用&#xff0c;被横竖屏切换搞得有点难受&#xff0c;这里做一下总结。 1、在info.plist文件中做横竖屏的设置 一般在info.plist文件中有这两个属性&#xff08;Supported interface orientations&#xff09;、&#xff08;Supported interf…

android11 动态设置屏幕旋转方向

1、需求 客户动态设置屏幕的旋转方向&#xff0c;下次开机保持设置的屏幕方向&#xff0c;开关机动画也要跟着旋转。 2、分析 如果开关机动画也要跟着旋转&#xff0c;就不跟再LocalDisplayAdapter.java里面改了&#xff0c;因为开关机动画已经基本走完&#xff0c;需要在Sur…

iPad上固定横屏设置

一般iPhone版本适配只需要设置&#xff1a; 但对于iPad版本无效&#xff0c;还需要在Info.plist中设置&#xff0c;仅保留&#xff1a;

设置ipad竖屏方向

1、在RootViewController.mm设置屏幕需求方向 - (NSUInteger) supportedInterfaceOrientations{ #ifdef __IPHONE_6_0return UIInterfaceOrientationMaskPortraitUpsideDown; #endif } 2、在info.plist设置参数如下

iOS开发 - 设置应用屏幕旋转方向、禁止横屏

前言 最近写软件的 UI 发现&#xff0c;屏幕旋转会影响布局的展示&#xff0c;由于开发的周期比较短&#xff0c;来不及做精细的布局适配&#xff0c;所以我决定禁止应用竖屏展示。处理过程如下文所示&#xff0c;希望对他人也有帮助。 操作步骤 1. 设置 Device Orientation…