一个循环实现九九乘法表

1
2
3
4
5
6
7
8
9
1 x 1=1
2 x 1=2   2 x 2=4
3 x 1=3   3 x 2=6   3 x 3=9
4 x 1=4   4 x 2=8   4 x 3=12  4 x 4=16
5 x 1=5   5 x 2=10  5 x 3=15  5 x 4=20  5 x 5=25
6 x 1=6   6 x 2=12  6 x 3=18  6 x 4=24  6 x 5=30  6 x 6=36
7 x 1=7   7 x 2=14  7 x 3=21  7 x 4=28  7 x 5=35  7 x 6=42  7 x 7=49
8 x 1=8   8 x 2=16  8 x 3=24  8 x 4=32  8 x 5=40  8 x 6=48  8 x 7=56  8 x 8=64
9 x 1=9   9 x 2=18  9 x 3=27  9 x 4=36  9 x 5=45  9 x 6=54  9 x 7=63  9 x 8=72  9 x 9=81
像
11
21,22
31,32,33
41,42,43 ... 
这些数字的十位数和个位数相乘
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>

int getS(int i) {
    return i / 10;
}

int getG(int i) {
    return i % 10;
}

void main() {
    int curS = 1;
    for (int i = 11; i < 100; i++) {
        int g = getG(i);
        int s = getS(i);
        // 十位数换了,就换行
        if (s > curS) {
            curS = s;
            printf("\n");
        }
        // 如果个位数为0或者个位数已经超过了十位数,就转到下一个十位
        if (g == 0 || g > s) {
            i = (curS + 1) * 10;
        }
        else {
            printf("%d x %d=%-2d  ", s, g, g * s);
        }
    }
}