首页 > 解决方案 > 在位串的前面加 0,在位串的末尾加 1 进行 N 次迭代

问题描述

目前,我有一个由表示的位串

1 #for n = 0

对于 n 次迭代,我想在位串的前面添加一个 0,在位串的末尾添加一个 1

对于 n = 1:

011  #added 0 and 1

对于 n = 2:

00111  #added 0 and 1 from previous bit string

对于 n = 3:

0001111  #added 0 and 1 from previous bit string

. .

我试过:

bit_str = ""
for i in range(n):
    if i == 0: 
        full_b_tree = "1"
        print(full_b_tree)
    else:
        inc_one = "1"
        bit_str += inc_one
        inc_zero = "0"
        full_b_tree += inc_zero
        print(full_b_tree)

但是对于 n = 3,我得到

1
011
01110
0101110

这是我第一次使用位串,因为我不熟悉在前面添加 0 和在末尾添加 1,希望能得到一些帮助。

标签: pythonbit

解决方案


好的,问题出在以下总结中:

正在做以下总结

full_b_tree += inc_zero

这意味着full_b_tree = full_b_tree + inc_zerowhich 将添加0到末尾。

应该

full_b_tree = inc_zero + full_b_tree

它将附加0到前面,这就是你想要的。我也替换了range(n)byrange(n+1)因为range(3)只会上升到2.

n = 3
bit_str = ""
for i in range(n+1): # n replaced by n+1
    if i == 0: 
        full_b_tree = "1"
        print(full_b_tree)
    else:
        inc_one = "1"
        full_b_tree += inc_one
        inc_zero = "0"
        full_b_tree = inc_zero + full_b_tree # The summation corrected
        print(full_b_tree)

1
011
00111
0001111

推荐阅读