开始刷LeetCode,逐步学习c++,从最简单的题目开始做:
Hamming Distance:
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
Given two integers x and y, calculate the Hamming distance.
Note:
0 ≤ x, y < 231.
Example:
Input: x = 1, y = 4
Output: 2
Explanation:
1 (0 0 0 1)
4 (0 1 0 0)
? ?
The above arrows point to positions where the corresponding bits are different.
联系了关于c++中类的引用,我的代码如下:
#include<iostream>
using namespace std;
class Solution {
public:
int hammingDistance(int x, int y);//类内对函数声明
};//calss之后加分号
int Solution::hammingDistance(int x, int y)//作用域操作符::对类内函数定义,如果程序比较简单也可以直接在类的声明中进行定义
{
int dist = 0, n = x ^ y;//n为x,y按位亦或结果,之后的步骤就是数n中有多少个1
while (n)
{
if (n % 2 == 1)
{
++dist;
}
n = n >> 1;//向右移1位,相当于n/=2;还可以n&=(n-1),这种和n-1进行相与操作可以去掉n的最后一个1
}
cout << dist << endl;
return dist;
}//不加分号
int main()
{
Solution n;//主函数调用类内函数,先要用定义好的类创建一个对象
n.hammingDistance(1,5); //调用类内public函数
return 0;
}
学习总结:
1、对c++中类的定义、使用进行学习
2、c++中数字操作符进行学习