hongweipeng 发布的文章

最大公约数


更相减损术

更相减损术, 出自于中国古代的《九章算术》,是一种求最大公约数的算法。

20161014092205.png

它的原理是:两个正整数a和b(a>b),它们的最大公约数等于a-b的差值c和较小数b的最大公约数。

//更相减损法
int gcd(int a, int b) {
    while (a != b) {
        if (a > b)
            a = a - b;
        else
            b = b -a;
    }
    return a;
}

当两数相差较大是,比如1和100000,那它就要循环99999次。


开发编程语言(六):语法分析


起步

初步的可运行的已经在github上了:https://github.com/OriginUnion/origin,发现有bug可以留言,供学习而已,千万别用在项目上,应该也没人这么做吧。

什么是语法分析

上篇的词法分析已经把文本解析为一个个单词。上一步的输出就是这步的输入,语法分析就是定义语句的格式。诸如像if语句的定义:

if_statement
        : IF LP expression RP block
        | IF LP expression RP block ELSE block
        | IF LP expression RP block elseif_list
        | IF LP expression RP block elseif_list ELSE block

这就定义了if的形式为if(表达式){}或者if(表达式){}else{}等格式。blok的定义在其他地方。


[转]Shell常用招式大全


原文地址:https://github.com/DeepinW/share_docs

本教程分为入门篇,命令篇和实战篇,结合平时工作中使用Shell的经验编写。以实例为主,侧重于应用,总结了一些实用的技巧。

以下为本教程的《入门篇》,适于初学者快速入门以及老手查缺补漏。

[TOC]

第一招 HelloWorld

第一式:echo

echo "Hello World"
echo -n "Hello World"    # 不带换行
echo -e '\e[0;33;1mHello\e[0m World'   # 带颜色的玩法
echo -e '\e[0;33;4mHello\e[0m World'   # 带颜色+下划线
echo -e '\e[0;33;5mHello\e[0m World'   # 带颜色+闪烁

格式为 \e[背景色;前景色;高亮格式m,请阅读详细文档后使用正确的姿势进行装逼。


django 数据库sqlmigrate


起步

django版本是1.8. 项目也运行上线一段时间了。由于需求的增加不能不增加些表格了。在model.py写上要添加的表格.

class MoyuRegion(models.Model):
    game_region_name = models.CharField(max_length=255, null=True, blank=True, unique=True)
    idc = models.ForeignKey(IDC, null=True, blank=True, on_delete=models.SET_NULL)
    child_game = models.ForeignKey(ChildGame, null=True, blank=True, on_delete=models.SET_NULL)
    def __unicode__(self):
        return self.game_region_name