1.关键词:位运算、负数
n>>i,表示n/2的n次方;
n<<i,表示n*2的n次方;
将一个整数转化为二进制形式的时候,不需要考虑正数、负数、零的情况考虑,系统中已经将负数使用补码的形式表示。
2.关键词:公倍数求和
题目:给定一个非负数,求取小于该数的3的倍数和5的倍数之和(3和5的公倍数只求一遍)。
思路1:第一次做这个题目的时候,使用for循环,从1开始到该数遍历,如果是3或是5的倍数就累加,是15的倍数就减掉,当3的倍数比该数打的时候停止遍历。
他人的思路。
思路2:采用for循环,从3开始遍历,使用一个包含或运算的判断公式,避免又是3又是5的倍数的重复累计 if(i%3==0 || i%5 ==0)。
思路3:直接求取,不需要使用for循环。本质是求取一个3和5的等比序列和。
思路4:使用vector这个容器,将3或5的倍数放入容器中,使用vector的求和函数计算和。