编程笔记

c++-求输出结果

11/27/2021 10:09:11 AM
0
#include<iostream>
using namespace std;
int main()
{
	int x=9999,count=0;
	while(x)
	{
		x=x&(x-1);
		count++;
	}
	cout<<count<<endl;
	return 0;
}

此题有两种解法:
第一种解法:
将x=9999转换为二进制,转换的时候,计算比较麻烦一点,但是只要认真的转化,然后再进行一步一步按位相与,是可以解出来的。起初看到这题的时候,一般会想到用此种方法解答。
第二种解法:
将x=9999用8421bcd码表示出来,就是把每一位用四位二进制数表示出来,再进行按位相与。此法转换比较简单,前提是你得知道如何转换。
结果count的值为8

友情链接

Copyright @2021-2024 关于