📜  程序检查N是否为同义七角形数字(1)

📅  最后修改于: 2023-12-03 14:56:36.852000             🧑  作者: Mango

程序检查N是否为同义七角形数字

同义七角形数字是指一个数的每一位数字,和它后面距离为k(k为自然数)个数字的数字构成一个长度为7的连续数字序列。

例如,数字1234567,每一位数字和它后面距离为1的数字构成的连续数字序列分别为:1234567、234567、34567、4567、567、67,都是长度为7的连续数字序列。因此,1234567是同义七角形数字。

以下是一个Python程序,判断一个数是否为同义七角形数字:

def check_septagonal(num):
    digits = [int(x) for x in str(num)]
    for i in range(len(digits)):
        sequence = digits[i:i+7]    # 取连续7位数
        if len(sequence) < 7:
            sequence += [0] * (7 - len(sequence))
        for j in range(1, 4):
            if digits[i+j:i+j+7] != sequence[j:]:    # 判断是否为同义七角形数字
                break
        else:
            return True
    return False

程序中,我们首先将数字转为数组,便于取任意位数。然后在循环中,以每个数字作为起点,取长度为7的数字序列。如果序列长度不足7,用0填充。接着,以每个序列的第二个数、第三个数、第四个数作为起点,判断后面是否有同义七角形数字。如果有,说明该数字是同义七角形数字,返回True。如果所有数字都不是同义七角形数字,则返回False。

你可以在自己的程序中使用该函数,来判断任意数字是否为同义七角形数字。