我想计算总数 我想用C++,计算和。
总和=1+…+2n-1=n2 我试着我想计算总数 我想用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
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;