c++ - 将数字求和到 N 的最快算法

标签 c++ c algorithm integer sum

<分区>

我想要一个真正快速 的 C 算法或代码来完成以下任务:对任何给定整数 N 从 1 到 N 的所有数字求和,而不假设 N 为正数。我做了一个从 1 到 N 求和的循环,但是太慢了。

最佳答案

如果 N 为正:int sum = N*(N+1)/2;

如果 N 为负数:int tempN = -N; int sum = 1 + tempN*(tempN+1)/2 * (-1);.

关于c++ - 将数字求和到 N 的最快算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2624387/

相关文章:

c++ - 用cgal计算两个多边形的交集面积

c - 我的程序在某些情况下似乎无法分隔单词

c - 在 free() 之前赋值

java - 在素数阶循环群中查找元素

java - 排序 vector - AddItem

c++ - 我的主 C++ 文件中的文本(在尚未执行的代码中)如何显示在字符串中?

c++ - 调试汇编程序时返回 0 时在 visual studio 中抛出异常

c++ - 没有用于调用 'EVP_DigestFinal' 的匹配函数 - 在 C++ 中使用 openssl 库

c - 下溢然后溢出无符号变量不好吗?

c - 求给定集合的所有子集的总和