Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

For loop in CS Circles section 7C coding exercise: One Triangle

Here is an example of a for loop inside another for loop.

Example This code prints a 5×5 square of ones.
Note: when we multiply a number X by ten and add one, we're essentially putting an extra 1 digit at the end of X. For example, (1867*10)+1=18671.

for i in range(0, 5):
  X = 0
  for j in range(0, 5):
    X = (X*10)+1
  print(X)

Modify the previous program in two ways. First, instead of a square, make it draw a triangle shaped like this: ◤. Second, instead of always having 5 lines, it should take the desired size as input from input(). For example, if the input is 3, then the output should be

111
11
1

So far the code that I have got is:

X=input()
for i in range(0, 3):
   X = 0
for j in range(0, 3):
   X = (X*10)+1
   print(X)

However this code outputs:

1
11
111

When the expected output should be:

111
11
1

I can't seem to figure out how to change my code that I have so far to get the expected output?

like image 308
s.zain Avatar asked Dec 02 '25 16:12

s.zain


2 Answers

This can solve the problem for you:

def test(X,_range):
    x = X
    for j in range(0, _range):
        print int(str((x*10) +1) + ("1"*(_range-1-j)))

test(0,3)
>>> 
111
11
1
>>>

In every loop step the number starts with (X*10)+1
In the next step X has changed and you add the digit 1 to the right side
If want to reverse it, you need to use ("1"*(_range-1-j))

The for iterator changes the X content every step. (he don't use i and j, "For" only for step derivation )

like image 141
dsgdfg Avatar answered Dec 04 '25 06:12

dsgdfg


Here's the solution:

n=int(input()) 
for i in range(0, n):
    X = 0
    for j in range(0, n-i):
        X = (X*10)+1
    print(X) 
like image 33
TheMirsinho Avatar answered Dec 04 '25 06:12

TheMirsinho



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!