Repetition Structure
-
Structura repetitiva conditionata anterior: cat timp … executa (while) pentru … executa (for)
-
Structura repetitiva condtionata posterior:
repeta … cat timp (do..while) repeta … pana cand (do…while(Not(E)))
Problems:
1) Se citeste un numar natural n, diferit de 0. Sa se afiseze suma cifrelor sale.
2) Se citeste un numar natural n. Sa se afiseze numarul obtinut prin inversarea numarului citit.
3) Se citeste un numar natural de cel mult 8 cifre. Sa se formeze un alt numar din cifrele situate pe pozitii impare (de la stanga la dreapta).
def func():
n = 123567
x = 0
while n!=0:
x = x * 10 + n % 10
n //= 10
while x!=0:
n = n * 10 + x % 10
x //= 100
print(n)
func()
4) Se citesc numerele naturale n1 si n2. Sa se calculeze produsul lor, fara a utiliza operatorul de inmultire.
5) Se citesc doua numere naturale n1 si n2. Se cere sa se calculese catul si restul impartirii intregi a lui n1 la n2 fara a utiliza operatorul de impartire.
6) Se citeste un numar natural n. Se cere sa se calculese suma primelor n numere naturale. input: n = 10 output: s = 1 + 2 + 3 + 4 + … + 10 = 5050
7) Sa se calculeze suma: 0,1 + 0,2 + 0,3 + … + 0.9
8) Se citeste un numar natural n. Se cere sa se calculeze suma: 1 + 1 * 2 + 1 * 2 * 3 + 1 * 2 * 3 * 4 + …+ 1 * 2 * 3 * 4 * …n
9) Sa se determine cel mai mare numar care se poate forma cu ajutorul cifrelor unui numar natural citit de la tastatura. Input: n = 76134 Output: m = 76431
def solve(n):
sol = []
for i in range(9,-1,-1):
m = n
count=0
while m!=0:
c = m % 10
if c == i:
count+=1
m //= 10
for j in range(0, count):
sol.append(i)
num = 0
n = len(sol)
p = 0
for i in range(n-1, -1, -1):
num = num + sol[i]*pow(10,p)
p+=1
return num
def func():
n = 56782
m = solve(n)
print(m)
func()
10) Sa se determine cel mai mic numar care se poate cu cifrele unui numar citit de la tastatura. Input: n = 76134 Output: m = 13467
def solve(n):
sol = []
for i in range(10):
m = n
count=0
while m!=0:
c = m % 10
if c == i:
count+=1
m //= 10
for j in range(0, count):
sol.append(i)
num = 0
n = len(sol)
p = 0
for i in range(n-1, -1, -1):
num = num + sol[i]*pow(10,p)
p+=1
return num
def func():
n = 56782
m = solve(n)
print(m)
func()