3n + 1 问题——引发的缓存思考


问题描述

有这样一个规律:对任意大于 1 的自然数 n,如果 n 为奇数,将其变化为 3n + 1;如果 n 为偶数,将其变化为 n/2。经过若干次变化后,一定会使 n 变为 1。

如果 n = 5:

  • 5 -> 16 -> 8 -> 4 -> 2 -> 1

如果 n = 3:

  • 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1

现在,输入一个整数 n,请计算出总的变化次数。例:n = 5,l = 5;n = 3,l = 7。(l 表示变化次数)


C语言-可变参数列表


019.8.31

起步

假使你有使用 Python 编程的经验,你应该会觉得设计接口能用 *arg**kwarg 这件事是多么的酸爽。毕竟定义一个拥有长长参数列表的函数是多么的累赘,形参不能总是被函数使用到则是累赘中的累赘。多说无益,还是用个 Python Demo 举例。

假使我想设计一个打印函数,就叫 YouPrint 吧。YouPrint 会将我传递的参数按每行打印,且排头以 “You” 开头。使用如下:

Usage: 
YouPrint("zhong", "ying", "ding")

Output:
You: zhong
You: ying
You: ding


C语言中的静/动态库文件


起步

之前一直对 .a .so 文件的存在犯迷糊。现在想来,之所以当时会有不解,是因为从没用 C 语言写过项目,顶多只是语法的测试,以及一些算法实现。现在略微搞明白些了,于是有了这篇总结。