1. 普通pc机一秒可以执行多少个空循环
      亿次
#include 

int main()
{
    char a[]="123456789";

    printf("%d\n",sizeof(a));

    printf("%d\n",strlen(a));

return 0;
}

输出

10
9

int a[1000000]的大小是4*1000000,将近4M,远远大于1M

    1. 回转矩阵
一_第1张图片
image.png
# 初始化矩阵
# result = [[0] * 5] * 5
result = [[0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0]]
num = 1
# 初始位置
x, y = 0, 0


def generate_matrix(n, x, y, num):
    """
    分治法
    :param n: n阶矩阵
    :return:
    """
    # x, y不能变 还得当作参数
    x_c, y_c = x, y

    if n <= 0:
        return
    if n == 1:
        result[x][y] = num

    # A区 y不变 x逐渐加一
    for i in range(n-1):
        result[x_c][y_c] = num
        s=result[0][0]
        k=result[1][0]
        num += 1
        x_c += 1

    # B区 x不变 y逐渐加一
    for i in range(n - 1):
        result[x_c][y_c] = num
        num += 1
        y_c += 1

    # C区 y不变 x逐渐减一
    for i in range(n - 1):
        result[x_c][y_c] = num
        num += 1
        x_c -= 1

    # D区 x不变 y逐渐减一
    for i in range(n - 1):
        result[x_c][y_c] = num
        num += 1
        y_c -= 1

    # 下一圈循环 从索引位置(1, 1)开始
    x += 1
    y += 1
    generate_matrix(n-2, x, y, num)  # 边长-2


print(result)
generate_matrix(6, x, y, num)

print(result)


"""
result = [[0] * 4] * 4
print(result)
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

result[0][0] = 2
print(result)
[[2, 0, 0, 0], [2, 0, 0, 0], [2, 0, 0, 0], [2, 0, 0, 0]]

想了半天 因为这样创建多层列表 各列表之间会存在引用 所以改不变的不是一个值
结果并不是 [[2, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

"""

你可能感兴趣的:(一)