在那没有互联网,软盘很软的日子里…


当我初识他们的时候,他们都不同程度地“不可理喻”


如何实现分数的精确表达,如 1/7 = 0.(142857)

前天晚上在加州高科技公司工作的女儿在跟妈妈视频闲聊时,得知我最近开始跟小朋友们玩起数据结构和算法了。就随口告诉我她工作面试中曾经遇到过的一个问题。这么多年了还记得,想必比较经典。我一听,果然挺有意思。

问题的描述很简单:就是把分数精确表达出来,比如

1/3 = 0.(3)
10/3 = 3.(3)
2/5 = 0.4
1/7 = 0.(142857)

括号代表循环小数的循环部分。

鬼使神差,当我在白纸上随便用一个分数找找感觉时,用的居然是 3/29。结果整张 A4 纸写到边了,还未见循环。到开始写程序了,才看到循环部分有 28 位之多。

开始并不顺利,特别想用字符串匹配的办法入手,却入不了手。结果在淋浴的时候计上心来,找到了问题的关键点,迎刃而解。后来女婿告诉我,他也曾被误导到字符串匹配 …


朋友虽小,却能真诚地分享喜怒哀乐


堆栈妙用二例

这是经典的用堆栈先将 infix expression 转成 postfix expression,接着还是用堆栈来求算结果的算法。很多教科书都省略了例子程序。有的虽然提供了例子程序,却相当冗长。

这里分享的是两个短小精悍的示例,可以分别独立玩味。

这是将 infix expression 转成 postfix expression 的程序:

#include<iostream>
#include<map>
using namespace std;
class S{
private:
int t=0;
char a[50];
public:
void pu(char c){a[t++]=c;}
char po(){return a[--t];}
char pe(){return …

曾听朋友说过:“投资教育,永远不会吃亏。”


金拇指课堂[015]

如何正确使用直尺和圆规

清理干净桌面,以示咱们对古希腊平面几何,也可以说是人类数学之基石,的敬仰。数学必须是美的,更别说是干净的了。


金拇指课堂[014]

三年级的双胞胎哥俩又给了我一个难以忘怀的夜晚。

哥哥Lucas率先解开带两个根号的椭圆方程。

Golden Thumb

1-on-1 tutor of chosen kids

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store