为了账号安全,请及时绑定邮箱和手机立即绑定

将数字除以3,而不使用*,/,+,-,%运算符

/ 猿问

将数字除以3,而不使用*,/,+,-,%运算符

你会如何除以3为数字,没有使用*/+-%,运营商?

该数字可以签名也可以不签名。


查看完整描述

3 回答

?
123456qqq

您可以使用(取决于平台的)内联汇编,例如,对于x86 :(也适用于负数)


#include <stdio.h>


int main() {

  int dividend = -42, divisor = 5, quotient, remainder;


  __asm__ ( "cdq; idivl %%ebx;"

          : "=a" (quotient), "=d" (remainder)

          : "a"  (dividend), "b"  (divisor)

          : );


  printf("%i / %i = %i, remainder: %i\n", dividend, divisor, quotient, remainder);

  return 0;

}


查看完整回答
反对 回复 2019-10-12

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信