C++ 计数范围内的数字算法(C+;+;)

C++ 计数范围内的数字算法(C+;+;),c++,algorithm,count,range,C++,Algorithm,Count,Range,我想打印两个数字范围内的数字量(包括这两个数字) 我创建了以下简单代码: #include <iostream> int main(int argc, char *argv[]) { int one = -5; int two = 5; unsigned int count = 0; int min = std::min(one, two); int max = std::max(one, two); while (min <= max) {

我想打印两个数字范围内的数字量(包括这两个数字)

我创建了以下简单代码:

#include <iostream>

int main(int argc, char *argv[]) {
  int one = -5;
  int two = 5;
  unsigned int count = 0;

  int min = std::min(one, two);
  int max = std::max(one, two);

  while (min <= max) {
    count++;
    min++;
  }

  std::cout << count << std::endl;

  return 0;
}
#包括
int main(int argc,char*argv[]){
int one=-5;
int 2=5;
无符号整数计数=0;
int min=std::min(一,二);
int max=std::max(一,二);

而(min该范围内的数字数量仅为其差值+1:

count = max - min + 1;
或者,在不计算最大值和最小值的情况下,使用差值的绝对值

count = std::abs(one - two) + 1;

也许我错过了什么,但是

#include <iostream>

int main(int argc, char *argv[]) {

    int one = -5;
    int two = 5;
    unsigned int count = std::abs(one-two)+1;

    std::cout << count << std::endl;

    return 0;
}
#包括
int main(int argc,char*argv[]){
int one=-5;
int 2=5;
无符号整数计数=std::abs(一二)+1;

STD::CUT< P>需要使用一个包含这样的数字范围的整数类型。目前C++中最基本的符号整数类型是“代码>长long int /代码>。
std::numeric\u limits::min()
std::numeric\u limits::max()

结构
std::数字\u限制
在标题

比如说

#include <iostream>
#include <limits>

int main()
{
   std::cout << std::numeric_limits<long long int>::min() << " - "
             << std::numeric_limits<long long int>::max() << std::endl;
}
#包括
#包括
int main()
{

std::cout
count=2-1
有什么问题吗?(你的“算法”的运行时复杂性已经达到极限)10不正确:-5,-4,-3,-2,-1,0,1,2,3,4,5~11个数字。实际公式应该是
max-min+1
,因为你想包括max/min。@Zeta你是对的,我更正了我的代码。^
std::abs(2-1)?
你如何断言
long long int
足够长?你在这里的思路是正确的,但是…你说了所有这些,但解释得很少。我想说的是,准确地说,当数字被输入时,它远不止“最好使用表达式[…]而不是使用循环”-循环将是一次彻底的DOS攻击vector@sehe我演示了如何获得long-long-int的可接受数字范围。因此,它是否足够长,您可以自己决定。足够长或不够长,请注意不要让GCC的数字范围太长。