Sayı Algoritması

Öncelikle herkese selamlar.Şuan hobi olarak geliştirmeye çalıştığım bir proje üzerinde çalışıyorum ve bir yerde tıkandım algoritmasını yapamadım.İstenilen şey kullanicidan 1 ile 10 arasında bir sayi girmesi ve istenilen,girilen o sayı kadar sayı oluşturulması ve oluşturulan sayilarin toplaminin 10’a eşit olacak şekilde olması ve ekrana basilmasi.Örnek olarak 3 girildi örnek çıktı 7,2,1 olacak 4 girildi 3,4,2,1 birde ard arda gelenler sayilar eşit olmayacak(Bazı sayılarda mümkün değilse istisnadan sayılabilir örneğin 10 girildi ekrana 10 tane bir basabilir)Ben üç için olanı kodladım fakat her girilene göre değişen kodlayamadım örnek kod:

import random
def sayi():
     while True:
         anahtar=0
         if anahtar==0:
             a=random.randint(1,7)
             anahtar=1
         b=random.randint(1,8-a)
         if a==b:
            continue
         c=random.randint(1,8-b)
         if b==c:
             continue
         elif a+b+c==10:
            print(a,b,c)
            break
sayi()

Girintilemeyi düzeltebilir misiniz? Böyle bir şey anlamak pek mümkün değil.

Girintilendi :ok_hand:

Kendi algoritmanı oluşturmak istemiyorsan bu kod işini görür.Birkaç iyileştirme yaparsın üzerinde.
Kodda, parametre olarak verilen listenin istenilen eleman sayısında kombinasyonlarını üretiyor. Algoritmanı tasarlamak istersen sende kombinasyonlar üzerinden gidebilirsin.

from itertools import combinations

l = list(range(1,11))

for i in combinations(l, 3):#3 yerinde kaç adet sayı seçildiği girilecek
    if sum(i) == 10:
        print(i)

Çok teşekkürler :+1: