算法笔记心得

第三章 入门模拟

3.1简单模拟

3.2查找元素

(1)构建结构体是查找元素常用的技巧,可以定义temp,ans1,ans2等结构体变量(ans1是最小值,那么初始值要把它赋值为比较大的值;ans2是最大值,初始时要把它赋值成比较小的值),在输入的时候就进行比较(如果符合条件,可以直接把temp赋值给ans1,ans2)。

(2)时间比较可以用晴神书上的bool函数(比如return a.y-b.y),也可以定义long long型变量,把日期转换为数字比较。

(3)xx:xx:xx或者xx/xx/xx,可以用scanf("%d:%d:%d",&a,&b,&c)读入。

(4)如果最后要把数字/下标转换为相应的字符,可以开字符数组,比如char a[5]={'W','T','L'}来输出。

(5)如果初始化要赋值的参数太多,可以写void init()函数,代码比较美观。

3.3图形输出

会夹杂着一些简单的找规律的数学问题,有两种方法:

(1)根据图形的规律直接输出。

(2)定义二维字符数组,通过规律填充,然后再输出。(没有输出符号的位置记得填充空格)

3.4日期处理

主要是处理闰月,求相差天数的问题。codeup 上有两道经典题目,日期差值和Day of Week,就用晴神的算法,很实用。

3.5进制转换

(1)十进制转换为其他进制的方法,其他进制转换为十进制的方法。(codeup 1942 很经典)

(2)求和问题,可以换算为最小单位求和后再转换,或者就直接进制加法。

codeup 1943没A出来。。。

3.6字符串处理

猜你喜欢

转载自blog.csdn.net/joah_ge/article/details/80548933