| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 967 人关注过本帖
标题:我的脑子都纠结成浆糊了。T-T
只看楼主 加入收藏
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
结帖率:91.67%
收藏
已结贴  问题点数:0 回复次数:15 
我的脑子都纠结成浆糊了。T-T
用c++ 编程:计算1+3+3^2+3^3+3^4+……+3^10=?

我不会啊,~~想了好久还是没头绪.

这个该怎么做啊,可不可以教我一下思路,谢谢了。
搜索更多相关主题的帖子: 编程 计算 
2011-04-24 11:15
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:2 
每一项都是前一项的3倍。问题就是等比数列的求和。套用公式。

迭代的是人,递归的是神。
2011-04-24 11:55
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
收藏
得分:0 
回复 2楼 lintaoyn
程序代码:
#include  <iostream>
using namespace std;
void main()
{
    double i,sum;
    sum=1;i=1;
    while(i<=3*3*3*3*3*3*3*3*3*3)
    {sum=sum+i;i=i*3;}
    cout<<sum;
}
谢谢,我这样写对吗?算出来是88574,可是上面那一步(i<=3*3*3*3*3*3*3*3*3*3)。。

有没有上面方法能简化一下啊..万一不知10项怎么办啊?
2011-04-24 14:11
Pirelo
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:118
专家分:550
注 册:2011-1-28
收藏
得分:18 
求3的0次幂到n次幂的的和嘛,有什么好难的?
//定义一个函数power计算3的j次幂
int power( int j)
{
    int i;
    int s=1;
    for(i=1;i<=j;i++)
    {
        s=s*3;
    }
    return s;
}
//main函数中每次循环调用一次power()函数
void main()
{
    int sum=1;
    int i=10;
    for(i=1;i<=10;i++)
    {
        sum=sum+power(i);
    }
    cout<<sum;
}
2011-04-24 14:26
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
收藏
得分:0 
回复 4楼 Pirelo
恩恩,O(∩_∩)O谢谢啊,

因为是大一刚开始学这个,所以就有点迷茫。..

书上都没有套用两个的例子,谢谢你啦~受益良多啊~

原来还可以这样定义两个在去用啊~
2011-04-24 14:49
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:0 
程序代码:
#include<iostream>
using namespace std;
int exp(int base, int e)//base底数,e是指数
{
    int result = 1;
    for(int i = 0; i <e; ++i)
        result *= base;
    return result;
}
int gPSum(int a1,int n, int q)//a1为第一项,n是数列一共有几项,q是该数列的公比
{
    return a1*(1-exp(q,n))/(1-q) ;//套用等比数列的求和公式
}
int main()
{
    cout << "请输入第一项、公比、以及数列的长度" << endl;

    int a1, q, n;
    cin >> a1 >> q >> n;

    cout << gPSum(a1, n, q) << endl;
    return 0;
}
1是3^0。从3^0到3^10一共是11项。
你输入1 3 11就能得到结果。

迭代的是人,递归的是神。
2011-04-24 14:51
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
收藏
得分:0 
回复 6楼 lintaoyn
。。。好强大>v<
2011-04-24 14:54
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
收藏
得分:0 
回复 6楼 lintaoyn
偶像啊,
这到底是怎么想出来的.

我又想到我的3*3*3*3*3*3*3……………………
...
2011-04-24 15:03
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
回复 8楼 糖包包
写程序有时要点数学功底。比如这道题,要是在看到时想到是等比数列求和,肯定会用公式做的。
求和公式高中的时候就学过,楼主说自己是大一的,看来就是学过的知识忘掉了呗~~
2011-04-25 13:23
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
另一种比较简单的写法是像这样:
程序代码:
#include <stdio.h>

int main(int argc, char *argv[])
{
    int sum = 0, term;
    int i;

    for (term = 1, i = 0; i <= 10; i++)
    {
        sum += term;
        term *= 3;
    }

    printf("%d\n", sum);

    return 0;
}

2011-04-25 13:27
快速回复:我的脑子都纠结成浆糊了。T-T
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017140 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved