微软笔试题目(一)

1.微软笔试题:快速求取一个整数的7倍
乘法相对比较慢,所以快速的方法就是将这个乘法转换成加减法和移位操作。
可以将此整数先左移三位(×8)然后再减去原值:X << 3 - X。
int _tmain(int argc, _TCHAR* argv[])
{
 //快速求取一个整数的7倍
 int x=3;
 x=x<<3;
 x=x-3*2;
 cout<<x<<endl;
 system("pause");
 return 0;
}

2.微软笔试题:判断一个数是不是2的n次幂
   思路:如果是2的n次幂,则此数用二进制表示时只有一位是1,其它都是0。减1后,此位变成0,后面的位变成1,所以按位与后结果是0。

int _tmain(int argc, _TCHAR* argv[])
{
 int N =8;
 if (N>0 && (N&(N-1))==0)
 {
  cout<<"yes"<<endl;
 }
 else
  cout<<"no"<<endl;
 system("pause");
 return 0;
}

以上就要注意一点,()千万不要多了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值