2つの数値(2つの数値を含む)の範囲内の数値を出力したい。
私はこの単純なコードを作成しました:
#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;
}
この例では、-5から5を使用し、11を正しく出力します。
このアルゴリズムを改善して、たとえば10億から10億の範囲の数値で問題なく機能するようにするにはどうすればよいですか?
それとも、コードは現状のままで問題ありませんか?
その範囲内の数値の数は、単にそれらの差+ 1です。
count = max - min + 1;
または、どちらが最大でどれが最小かを評価せずに、差の絶対値を使用します
count = std::abs(one - two) + 1;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加