在C++中查找满足给定条件的数字a和b


假设我们有一个整数n。我们的任务是找到两个数字a和b,满足以下三个条件。

  • a mod b = 0
  • a * b > n
  • a / b < n

如果找不到这样的数对,则打印-1。

例如,如果数字n = 10,则a和b可以是a = 90,b = 10。这满足给定的规则。

为了解决这个问题,我们将遵循以下步骤:

  • 令b = n。可以使用这三个条件找到a
  • 当a是b的倍数时,a mod b = 0
  • a / b < n,所以a / b = n – 1,小于n
  • (a * b > n) => a = n

示例

#include<iostream>
using namespace std;
void findAandB(int n) {
   int b = n;
   int a = b * (n - 1);
   if (a * b > n && a / b < n) {
      cout << "a: " << a << endl;
      cout << "b: " << b;
   }else
      cout << -1 << endl;
   }
int main() {
   int n = 10;
   findAandB(n);
}

输出

a: 90
b: 10

更新于:2019年11月1日

466 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.