当前位置: 代码迷 >> 综合 >> 【Week1 -2】等差数列分糖问题
  详细解决方案

【Week1 -2】等差数列分糖问题

热度:3   发布时间:2023-12-06 07:39:48.0

【问题背景】C语言程序设计慕课版第二版第三章课后题 3-6。

【问题题目】3-6 幼儿园老师给学生由前向后发糖果, 每个学生得到的糖果数目成等差数列,前四个学生的得到的糖果数目之和是26,积是880,编程求前20名学生每人得到的糖果数目。

【问题分析】运用等差数列的思想。number为首项,n为公差。number和n都是至少为1的正整数。当number=1时,由number+(number+n)+(number+2n)+(number+3n)=26得n=3.6,可知n的取值范围为1≤n≤3。当n=1时,由4number+6n=26得number=5,可知number得取值范围是1≤number≤5

【代码呈上】

#include<stdio.h>
int main()
{
    int j,number,n;
    for(number=1;number<6;number++)
    for(n=1;n<4;n++)
        if((4*number+6*n==26)&&
        (number*(number+n)*(number+2*n)*(number+3*n))==880)
        {
        printf("结果是\n");
            for(j=1;j<=20;j++)
            {
            printf("%3d",number);
            number+=n;
            if(j%5==0)
            printf("\n");
            }
        }
return 0;
}

【注意细节】 1.注意if后 前后括号 的一一对应。

2.注意==与=的区别。