第九周项目6-穷举法之年龄几何

张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是880,求以他们的年龄为前4项的等差数列的前20项。

构建代码:

/*
 *Copyright (c) 2014,烟台大学计算机学院
 *All gight reserved.
 *文件名称:temp.cpp
 *作者:邵帅
 *完成时间:2014年10月25日
 *版本号:v1.0
 *
 *问题描述:求等差数列
 *输入描述:无
 *程序输出;输出20项的等差数列
*/
#include<iostream>
using namespace std;
int main()
{
    int a,n,i;//n为最小的年龄,a为项差,i为记录循环的次数
    for (n=1; n>=1 && n<=6; n++)
    {
        for (a=1; a>=1 && a<=4; a++)
        {
            if (4*n+6*a==26 && n*(n+a)*(n+a+a)*(n+a+a+a)==880)
            {
                for (i=1; i<=20; i++,n=n+a)
                    cout<<n<<" ";
            }
        }
    }
    return 0;
}

运行结果:



思路:设数列的首项为n(1<=n<=6),项差为a(1<=a<=4),前4项之和=4*n+6*a,前4项之积=n*(n+a)*(n+a+a)*(n+a+a+a),当进行穷举出现符合两式时跳出循环。


@ Mayuko

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值