问题
张三,李四,王五,刘六年龄是个等差数列。他们四个年龄相加为26,相乘是880,求以他们年龄前四项的等差数列的前20项。
分析
穷举
程序
1: /** 2: * @file 039c.c 3: * @author Chaolong Zhang <emacsun@163.com> 4: * @date Thu Jun 27 19:16:40 2013 5: * 6: * @brief 张三,李四,王五,刘六年龄是个等差数列。他们四个年龄相加为26,相乘是880,求以他们年龄前四项的等差数列的前20项。 7: * 8: * 9: */ 10: 11: #include <stdio.h> 12: 13: int main(int argc, char *argv[]) 14: { 15: int i,j,k,l; 16: 17: for (i=1; i < 880; ++i) 18: { 19: for (j=1; j < 880/i; ++j) 20: { 21: k=j+j-i; 22: l=k+j-i; 23: if( ( l-k == j-i ) && ( i*j*k*l ==880 ) ){ 24: printf ("%d*%d*%d*%d=880 ",i,j,k,l); 25: } 26: } 27: } 28: return 0; 29: }
输出
2*5*8*11=880 11*8*5*2=880