如何划分奇数以留下两个整数?

can*_*boy 8 math

如果我有一个奇数,我怎么把它分成两个并留下两个整数,第一个比第二个多一个.例如9会产生5和4吗?

Fre*_*Foo 15

"较小的一半" int xx/2."较大的一半"是x/2 + x%2x - x/2.

注意,"较小"和"较大"是指绝对值,因此在负数的情况下x,bigger < smaller.

当然,如果x总是奇数和正数,那么x%2将是1更大的一半也可以计算为x/2 + 1.

  • 'x - x/2`对于第二部分会稍微简单一些,因为你只计算了`x/2` ;-) (3认同)
  • @mouviciel:"这只是一个右移" - 假设一个无符号类型.对于签名类型,它有一点点因为向零舍入.在这个例子中,我们可以知道,该值将始终是积极的,所以不要紧,但如果编译器不知道,那么就不能让即使它想这种转变. (2认同)

mou*_*iel 5

那这个呢?

int a = 9;
int c = a/2;
int b = a-c;
Run Code Online (Sandbox Code Playgroud)

  • @Richard Number根据问题是奇数. (4认同)
  • @ RichardJ.RossIII问题表明输入是奇数.再读一遍. (3认同)