python for i range

0

Witam mam problem z napisaniem programu który mi poda poniższy kod:
0
2 1
4 8 16
6 5 4 3
8 16 32 64 128
z góry dziękuje za odp

1

Co już masz zrobione i na czym konkretnie utknąłeś? Wrzuć kod, będzie łatwiej pomóc.

0

n=int(input())
x=0
for i in range(1,n+1):
'z=x'
'for j in range(1,i+1):'
'print(z , end=' ')'
'z = z-1'
'if i==4 or i==8:'
'x=x+2'
'else:'
'x=x+2'
'print()'

nie wiem jak zmienić aby mnożyło 3 i 5 linię

0
janosh napisał(a):

n=int(input())

x=0
for i in range(1,n+1):
z=x
for j in range(1,i+1):
print(z , end=' ')
z = z-1
if i==4 or i==8:
x=x+2
else:
x=x+2
print()

nie wiem jak zmienić aby mnożyło 3 i 5 linię

1

@janosh:

Wklej swój kod między znaczniki kodu


Tak jak na obrazku. Zamiast kod Pythona ma być twój kod.
title</p>
0
n=int(input())
> x=0
> for i in range(1,n+1):
>     z=x
>     for j in range(1,i+1):
>         print(z , end=' ')
>         z = z-1
>     if i==4 or i==8:
>         x=x+2
>     else'
>        x=x+2
>     2print()
> ```
> 
> 
> nie wiem jak zmienić aby mnożyło 3 i 5 linię
0

" ``` " to nie to samo co ''' zrób:

```python
Twoj kod
```
0

Spróbuj sprecyzować to pytanie, powiedz co to jest n, co to za ciąg (ciągi ?) jaki wzór jest tych ciągów, żeby wypisać ten kod w temacie to wystarczy

print("""0
2 1
4 8 16
6 5 4 3
8 16 32 64 128
""")
0

Najpierw musisz zauważyć co się dzieje w tym ciągu, nie wiem czy to zauważyłeś ale o to właśnie pytałem jeśli chodziło mi o wzór:

  1. Od jakich wartości zaczyna się każda nowa linijka ciągu ?
  2. Ile wartości jest wypisywanych ?
  3. Co się dzieje w linijkach parzystych a co w nieparzystych ?

odpowiedź na te pytania

1
for i in range(int(input())):
  print(' '.join([str(b) for b in (range(i * 2, int(i * 2 / 2) - 1, -1) if i&1 else  [0] if not i else [2**(a + 1) for a in range(int(i / 2), i + int(i / 2) + 1)])])) 
0
for i in range(5):
    print(*[i*2**j if not i%2 else 2*i-j+1 for j in range(1, i+2)])

Przy czym dla 7 mam inny ostatni wiersz niż @Delor i trudno mi powiedzieć, które rozwiązanie jest to prawidłowe.

0

Najprostszymi środkami:

lines = int(input("Podaj liczbę linii: "))

for line in range(1, lines + 1):
    odd_line = line % 2 != 0
    start = (line - 1) * 2

    for index in range(line):
        if odd_line:
            print(start * (2 ** index), end="")
        else:
            print(start - index, end="")

        if index < line - 1:
            print(" ", end="")

    print()

1 użytkowników online, w tym zalogowanych: 0, gości: 1