[从头学数学] 第22节 表内乘法(一)

剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入练气期第三层功法的修炼,
这次要修炼的目标是[表内乘法(一)]。

正剧开始:


星历2016年01月02日 15:42:55, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起研究表内乘法(一)。


什么是乘法呢,小伟看到了这个:


来连一连吧:


乘号的由来:


15:58:04, 小伟看到了乘法口诀,这些可要怎么写呢,小伟问阿伟。
15:58:24, 阿伟早就给小伟准备好了。

下面这个可以把数字用汉字读出来,这是第一步:

<span style="font-size:18px;">#数字的中文写法                
def numToChinese(num, s):
    chineseOfNumber=['零','一', '二', '三', '四', '五', '六',\
                     '七', '八', '九', '十','百','千','万','亿'];
    bit = 0;
    tmp = num;
    while (tmp > 0):
        tmp = tmp//10;
        bit+=1;
    tmp = num;
    while (tmp > 0):
        if (tmp < 10):
            s += chineseOfNumber[tmp];
            tmp -= 10;
        elif (tmp < 100):
            s += chineseOfNumber[tmp//10];
            s += '十';
            tmp = tmp%10; 
        elif (tmp < 1000):
            s += chineseOfNumber[tmp//100];
            s += '百';
            tmp = tmp%100;
            if tmp < 10 and tmp > 0:
                s += '零';
        elif (tmp < 10000):
            s += chineseOfNumber[tmp//1000];
            s += '千';
            tmp = tmp%1000;
            if tmp < 100 and tmp > 0:
                s += '零';
        elif (tmp < 100000000):
            s1 = '';
            s += numToChinese(tmp//10000, s1);
            s += '万';
            tmp =tmp%10000;
            if tmp < 1000 and tmp > 0:
                s += '零';
        elif (tmp >= 100000000):
            s1 = '';
            s += numToChinese(tmp//100000000, s1);
            s += '亿';
            tmp = tmp%100000000;
            if tmp < 10000000 and tmp > 0:
                s += '零';
        else:
            pass;
    return s;</span>

阿伟让小伟试了几个数字:

<span style="font-size:18px;">>>> num = [1, 12, 135, 1568, 10825, 162543];
>>> import myfun;
>>> for i in range(len(num)):
	print('{0} 读作 {1}'.format(num[i], ''+myfun.numToChinese(num[i], '')));

	
1 读作 一
12 读作 一十二
135 读作 一百三十五
1568 读作 一千五百六十八
10825 读作 一万零八百二十五
162543 读作 一十六万二千五百四十三</span>


看到都读对了,小伟很兴奋,以后不用怕读不出数字来了,有了这个工具,轻松又省事。

阿伟告诉小伟,接着就可以刷口诀了,小伟立即进行了试验:

<span style="font-size:18px;">#表内乘法口诀(一)
def multiplication():
    for i in range(1, 7):
        for j in range(1, 7):
            result = i * j;
            if (result < 10):
                s = '' + numToChinese(i, '')+numToChinese(j, '')+'得'+\
                      numToChinese(result, '');
                print(s, end=' ');
            else:
                s = '' + numToChinese(i, '')+numToChinese(j, '')+\
                      numToChinese(result, '')
                print(s, end=' ');
        print('\n');
    return;
	
>>> 
一一得一 一二得二 一三得三 一四得四 一五得五 一六得六 

二一得二 二二得四 二三得六 二四得八 二五一十 二六一十二 

三一得三 三二得六 三三得九 三四一十二 三五一十五 三六一十八 

四一得四 四二得八 四三一十二 四四一十六 四五二十 四六二十四 

五一得五 五二一十 五三一十五 五四二十 五五二十五 五六三十 

六一得六 六二一十二 六三一十八 六四二十四 六五三十 六六三十六 </span>



看到了这个数学游戏,小伟兴趣大发,一口气的连声说了下去:

<span style="font-size:18px;">def tmp():
    for i in range(1, 10):
       print('{0}只青蛙{1}张嘴,{2}只眼睛{3}条腿。'.format(i, i, 2*i, 4*i));
    return;</span>

<span style="font-size:18px;">>>> 
1只青蛙1张嘴,2只眼睛4条腿。
2只青蛙2张嘴,4只眼睛8条腿。
3只青蛙3张嘴,6只眼睛12条腿。
4只青蛙4张嘴,8只眼睛16条腿。
5只青蛙5张嘴,10只眼睛20条腿。
6只青蛙6张嘴,12只眼睛24条腿。
7只青蛙7张嘴,14只眼睛28条腿。
8只青蛙8张嘴,16只眼睛32条腿。
9只青蛙9张嘴,18只眼睛36条腿。</span>

上面这张表应该是怎样整理呢,小伟给出了解答:

<span style="font-size:18px;">#表内乘法口诀(一)
def multiplication():
    for j in range(1, 7):
        for i in range(1, 7):
            if (i > j):
                continue;
            result = i * j;
            if (result < 10):
                s = '' + numToChinese(i, '')+numToChinese(j, '')+'得'+\
                      numToChinese(result, '');
                print(s, end=' ');
            else:
                s = '' + numToChinese(i, '')+numToChinese(j, '')+\
                      numToChinese(result, '')
                print(s, end=' ');
        print('\n');
    return;</span>


<span style="font-size:18px;">>>> 
一一得一 

一二得二 二二得四 

一三得三 二三得六 三三得九 

一四得四 二四得八 三四一十二 四四一十六 

一五得五 二五一十 三五一十五 四五二十 五五二十五 

一六得六 二六一十二 三六一十八 四六二十四 五六三十 六六三十六 </span>


看着结果这么整齐,小伟很得意。

本节到此结束,欲知后事如何,请看下回分解。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值