Hmily 发表于 2009-8-31 16:52

C++编写S=1+(1+2)+(1+2+3)+...+(1+2+3+...+N)

#include <iostream.h>
void main()
{
      int n;
      cout<<"输入N的值:";
      cin>>n;
      cout<<"S="<<n*(n+1)*(n+2)/6<<endl;
}


先化简再计算,大家教教我其他方法把...

vienna 发表于 2009-8-31 17:09

大家教教我其他方法把...

逻辑错误。

应该管理教我才对。。。

vienna 发表于 2009-8-31 17:47

(n*n+n)*(n+2)/6

哇哈哈。。。。

Hmily 发表于 2009-8-31 18:43

#include <iostream.h>
int sum(int n)
{
        int S=0;
        for(int i=0;i<=n;i++)
        {
                S=S+i;
        }
        return S;
}
void main()
{
        int n;
        int SS=0;
        cout<<"输入N的值:";
        cin>>n;
        for (int j=0;j<=n;j++)
        {
                SS=SS+sum(j);
        }
        cout<<SS<<endl;
}


A哥的代码

Hmily 发表于 2009-8-31 18:43

一、双重循环:
#include<iostream>
using namespace std;
int main()
{
int s=0,t=0,n;
cin>>n;
for(int i=0;i<n;i++)
   for(int j=1;j<=n-i;j++)
   s=s+j;
t=t+s;
cout<<"S(n)="<<t<<endl;
return 0;
}

二、单循环:
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int temp=0,value=0;
    for(int i = 0; i <= n; i++)
    {
      temp=temp+i;
      value=value+temp;
    }
    cout<<value<<endl;
    return 0;
}

三、
#include <iostream.h>
void main(){
    int n;
    cin>>n;
    int temp = 0;
    int j = 0;
    for(int i = n; i > 0; i--,j++)
    {      
      temp+= (j +1)*(n - j);
    }
    cout<<temp<<endl;
}


百度来的答案~

A-new 发表于 2009-8-31 18:49

#include <iostream>
int main()
{
    int n;
    cin>>n;
    int temp=0,value=0;
    for(int i = 0; i <= n; i++)
    {
      temp=temp+i;
      value=value+temp;
    }
    cout<<value<<endl;
    return 0;
}这个应该是最好的

zapline 发表于 2009-8-31 19:04

:rggrg我们学老谭的c,第三节课讲的

llight 发表于 2009-8-31 19:33

#include<iostream>
using namespace std;
int factr(int);
int main()
{
        int n;
        cout << "输入N的值" << endl;
        cin >> n;
        int i=1;
        int s=0;
        for(i;i<=n;i++)
        {
                s+=factr(i);
        }
        cout << "你所求的数为:" << s<< endl;
        return 0;
}
int factr(int n)
{
        int sum=0;
        if(n==1)
                return 1;
        sum=factr(n-1)+n;
        return(sum);
}
这样应该也可以吧

mycsy 发表于 2009-8-31 23:32

太变态了~
需要数学算法牛C才行

轨迹 发表于 2009-9-1 23:22

本帖最后由 轨迹 于 2009-9-1 23:37 编辑

太变态了~
需要数学算法牛C才行
mycsy 发表于 2009-8-31 23:32 http://www.52pojie.cn/images/common/back.gif
汗,不用这个复杂的,个人觉得用递归是比较清晰的办法~~
页: [1] 2
查看完整版本: C++编写S=1+(1+2)+(1+2+3)+...+(1+2+3+...+N)