【问题背景】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.注意==与=的区别。