吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14041|回复: 10
收起左侧

[其他转载] C++编写S=1+(1+2)+(1+2+3)+...+(1+2+3+...+N)

[复制链接]
Hmily 发表于 2009-8-31 16:52
#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
 楼主| 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
我们学老谭的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

汗,不用这个复杂的,个人觉得用递归是比较清晰的办法~~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 04:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表