引言
晚上没什么架构上的新思路,也不想写一些工程上的代码。就去了HDU做了几道水题练练手。许久不做水题,别有一番滋味。其中还有几个以前我最不喜欢做的数学题。
HDU1008
hdu 1008. 题目在此. 很简单的一个水题,以前傻乎乎的会去按照题目描述去按部就班的计算各种值。今天把原先的停留步骤抽了出来,直接算出一个总停留时间值。
HDU1012
hdu 1012. 题目在此. 也是非常简单的一个水题。效率起见,不需要每次都重新计算阶乘值,然后再算他们的分数的累加值。可以对n[0,9]之间的数的阶乘值做存储,然后每次乘以新的n值,再做计算即可。
HDU1013
hdu 1013. 题目在此. 稍微有点陷阱的水题。如果知道一个 合九法 的数论,就非常简单了。当然,不知道也没关系,直接暴力一发。
此处需要注意几个问题:
- cout,cin 与 scanf,printf。
使用cout,cin会超时,而scanf,printf不会.
- int, unsigned int 与 char, string
使用 int, unsigned int 会出现 wrong answer,因为解集中会有大数出现。所以,此处使用 char 或者 string 比较靠谱。
- 递归计算 与 result 处理。
每次都先算出 result ,再对result做 root重复计算,会超时。因此,这边需要在 result > 9 的时候,就要做 result = result % 10 + result / 10; 的处理。这样一遍就计算完。不会超时。
网友评论