Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想计算总数 我想用C++,计算和。_C++_Algorithm_Math_Sum - Fatal编程技术网

我想计算总数 我想用C++,计算和。

我想计算总数 我想用C++,计算和。,c++,algorithm,math,sum,C++,Algorithm,Math,Sum,总和=1+…+2n-1=n2 我试着 double s = 0; int i = 1; int n = 5; for(i = 1; i <= n; i++){ double val = (double)i / (i + 1); if (i % 2 != 0){ val *= -1.; } s += val; } 但这是不对的。有人能帮我吗?试试这个: long sum = 0; long val = 1; int n = 5; for(in

总和=1+…+2n-1=n2

我试着

double s = 0;
int i = 1;
int n = 5;
for(i = 1; i <= n; i++){
    double val = (double)i / (i + 1);
    if (i % 2 != 0){
        val *= -1.;
    }
    s += val;
}
但这是不对的。有人能帮我吗?

试试这个:

long sum = 0;
long val = 1;
int n = 5;
for(int i = 1; i <= n; i++){
    val *= (2*i - 1);
    if (i % 2 == 0) {
        val *= -1;
    }
    sum += val;
}

return sum;

使用long,因为double表示十进制值,而不是这种情况

您指的是类似于以下内容的内容吗

#include <iostream>

int main()
{
    while ( true )
    {
        std::cout << "\nEnter a positive integer number (0-exit): ";

        unsigned int n = 0;
        std::cin >> n;

        if ( !n ) break;

        long long int sum  = 0;
        long long int item = 1;

        for ( unsigned int i = 1; i <= n; i++ )
        {
            item *= 2 * i - 1;
            sum  += ( i % 2 == 0 ? - item : item );
        }

        std::cout << "\nSum is equal to " << sum << std::endl;
    }
}
你现在的任务,完全改变了,要求你把奇数从1加到2n-1,得到n^2=n*n

这就产生了循环

sum = 1;

for(i=n-1; i>0; i--) 
    sum = 1-(2*i+1)*sum;

我看不到你想要的系列中有任何除法。TDD:试着用n==1,然后n==3…for循环看起来一点也不像数学方程…@Gabriel它与你在文章编辑前展示的完全不同。非常完美,谢谢@LutzL这是对编辑前原始帖子的回答。注意:我不知道为什么在我的回答后原始帖子被重写。然后我通过查看编辑日志看到了这一点,并还原了我的操作。
for(i=1; i<2*n; i+=2) sum +=i
for(i=1; i<=n; i++) sum += 2*i-1
1-1*3+1*3*5-...+-1*3*...*(2n-1) = 1-3*(1-5*(1-7*(1-....*(1-(2n-1))...)))
sum = 1;

for(i=n-1; i>0; i--) 
    sum = 1-(2*i+1)*sum;