【问题标题】:How to make two numbers equal by adding d to one and d-1 to another [closed]如何通过将 d 加到一个数和 d-1 到另一个数来使两个数相等[关闭]
【发布时间】:2018-11-06 07:06:28
【问题描述】:

给你两个正整数a和b。 您可以多次执行该操作。 操作是: 选择任何正整数 d

1.将d添加到a,将d-1添加到b。 或者 2.a加d-1,b加d。

是否有任何两个正整数 a 和 b 不能通过上述操作变得相等? 感谢您的帮助。

【问题讨论】:

  • 既然你得到了答案,我只是想让你知道,你想写的代码逻辑也很简单。
  • vivek_23 是的,我已经编写了代码逻辑,并为测试用例生成了一个文件,想知道为什么它对所有输入都给出“可能”哈哈。假设我不知道这总是可能的,那么最优化的代码会告诉我对于任何给定的两个数字是否可能?
  • 最优化的代码本身就是最直观的。请在此处查看code。既然你说的是 2 个positive 整数,那么总是可以从较大的整数中删除1,并将较小的整数增加d。当然,他们会见面的。
  • 我的代码假定d 在过程中间不能更改,因为您的问题陈述没有明确说明。
  • 我们可以在每次操作的时候改变d。是的,这与我的代码相似,我也取了一个固定值 d。另外,我们的两个代码都存在一个问题,如果 a 不等于 b,即使在多次添加 d 之后,循环也不会终止。代码本身假设我们知道最终我们将能够使 a=b 并且它将终止。所以我们事先知道答案。如果循环运行了无限时间,则意味着不可能使 a 等于 b。但是我们没有无限的时间来解决这个问题,我们需要一个代码来告诉我们是否可能。

标签: algorithm math numbers combinatorics number-theory


【解决方案1】:

考虑数字差异:第一个操作等于增加a,第二个操作等于减少a

如果差异n = b-a 为正,我们应该进行n 第一次操作,如果为负 - 进行n 第二次操作。

是的,整数总是可以的。

【讨论】:

  • 谢谢,我只是想确认一下。
猜你喜欢
  • 1970-01-01
  • 2012-10-26
  • 2021-12-10
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-25
  • 1970-01-01
相关资源
最近更新 更多