表达式判断两个正整数大小

来源:互联网 发布:mac子弹头 编辑:程序博客网 时间:2024/06/14 15:40
// Exercise 2.5 Finding the largest of two integers without comparing them.#include <iostream>#include <ctime>#include <cstdlib>using std::cin;using std::cout;int main() {  long a = 0L;  long b = 0L;  cout << "Enter a positive integer: ";  cin >> a;  cout << "Enter another different positive integer: ";  cin >> b;  // The trick is to find arithmetic expressions for each of the larger  // and the smaller of the two integers  long larger = (a*(a/b) + b*(b/a))/(a/b + b/a);  long smaller = (b*(a/b) + a*(b/a))/(a/b + b/a);  srand(time());  rand()  cout << "\nThe larger integer is " << larger << "."       << "\nThe smaller integer is " << smaller << ".\n";  return 0;}

如果a>b,则b/a=0,a/b!=0

long larger = (a*(a/b) + b*(b/a))/(a/b + b/a);
long smaller = (b*(a/b) + a*(b/a))/(a/b + b/a);

原创粉丝点击