数字方面
求反序数
int reverse(int x)
{
int rev=0;
while(x!=0)
{
rev*=10;
rev+=x%10;
x/=10;
}
return rev;
}
模拟打印的题
最重要的就是找到关键的表达式
然后进行编程。
北大复试机试题
日期年份问题
//是闰年,返回ture,否则返回false
bool IsLeapYear(int year)
{
return (year % 4 == 0) && year % 100 != 0 || (year % 400 == 0);
}
//不同年份的月份表
int datable[2][13] = {
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
}
打印问题
排序问题
#include <algorithm>
//头文件
using namespace std;
const int MAX = 100;
int main()
{
//对数组进行排序,使用sort函数进行操作
int a[MAX];
for (int i = 0; i < MAX; i++)
{
cin >> a[i];
}
sort(a, a + MAX);
//sort(first,last,comp);//还可以对传入比较函数进行比较,可以确定结构体的排序方式
}
查找问题
const int MAXN = 100;
int a[MAXN];
//重要的是二分的思想
bool BinarySearch(int n, int target)
{
int left = 0;
int right = n - 1;
while (left<=right)
{
int middle = (left + right) / 2;
if (a[middle] < target)
{
left = middle + 1;
}
else if(a[middle]>target)
{
right = middle - 1;
}
else
{
return true;
}
}
return false;
}