我正在学习C#,所以今天我打印了这个进展的第一个n计数:
An = 1 / n *( - 1)^ n;所以它基本上是-1 1/2 -1/3 1/4 ...我想知道使用if语句if(n%2 == 0)
或更多elegenat Math.Pow()
方法是否更好?即使对于数字1,Math.Pow()
是否缓慢,当功率是一个大的int?
答案 0 :(得分:1)
我使用三元运算符以这种方式编码:
double sum = 0.0;
for (int i = 1; i <= n; ++i) {
sum += ((i % 2) == 0) ? +1.0 : -1.0)/i;
}
我也喜欢在评论中展开这个循环的想法:
double sum = 0.0;
for (int i = 1; i <= n; i += 2) {
sum -= 1.0/i;
}
for (int i = 2; i <= n; i += 2) {
sum += 1.0/i;
}
答案 1 :(得分:1)
这是另一种方式:
int sign = -1;
for(int n = 1; n <= N; n++)
{
double a_n = (double)sign/n;
sign *= -1;
}