10.矩形覆盖
/**************************************************************/
/* 题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? */
/**************************************************************/
class Solution {
public:
int rectCover(int number) {
int res = 0;
if(number < 1)
return 0;
if(number == 1)
return 1;
if(number == 2)
return 2;
return rectCover(number-1)+rectCover(number-2);
}
};
11.二进制中1的个数
/**************************************************************/
/* 题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 */
/**************************************************************/
#include <iostream>
using namespace std;
int NumberOf1(int n) {
int res = 0;
//n&(n-1)就是把n的最末位的1置为0,while循环执行了多少次,就是原来n中1的个数
while (n != 0)
{
n = n & (n - 1);
res++;
}
return res;
}
int main()
{
int n = 214748367;
int i = NumberOf1(n);
cout << i << endl;
system("pause");
return 0;
}
12.数值的整数次方
/**************************************************************/
/* 题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方 */
/**************************************************************/
#include <iostream>
using namespace std;
double Power(double base, int exponent) {
double res = 1.0;
if (exponent == 0)
return 1.0;
if (exponent > 0)
{
for (int i = 0; i < exponent; i++)
{
res = res * base;
}
}
else
{
for (int i = 0; i < -exponent; i++)
{
res = res * base;
}
res = 1 / res;
}
return res;
}
int main()
{
int n = 2,m = 3;
cout << Power(2, 3) << endl;
system("pause");
return 0;
}