任务和代码
/*
*Copyright (c)2016,CSDN学院 | C语言及程序设计初步
*All rights reserved.
*文件名称:p40-5.c
*作 者:管运煌
*完成日期:2016年6月17日
*张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是880,
求以他们的年龄为前4项的等差数列的前20项。
提示:设数列的首项为n,公差为a,则前4项之和为"4*n+6*a",前4 项之积为"n*(n+a)*(n+a+a)*(n+a+a+a)"。
同时"1<=a<=4","1<=n<=6"。可采用穷举法求出此数列。
*/
#include <stdio.h>
int main(int argc, char * argv[])
{
int n,a,i;
int k=0;
for (n=1;n<=6;n++)
for (a=1;a<=4;a++)
{
if (4*n+6*a==26&&n*(n+a)*(n+a+a)*(n+a+a+a)==880)
{
printf ("%d\n",n);
for (i=1;i<=20;i++)
{
n=n+a;
printf ("%d\t",n);
k++;
if (k%5==0)
printf ("\n");
}
}
}
return 0;
}
运行结果
知识总结
等差数列、穷举法
心得体会
首先要根据前四项的和 和积确定首项n和公差a,确定之后再进入循环求出前20项(本题首项是2,有点强迫症~在这里输出了前21项)。