Karekök olan sayıları alt alta yazdıran C programı

"Ne kadar zor olabilir ki" diyerek Java ile giriştim. 15 dakikamı aldı. (100000'e kadar olan sayılar.)
Kara listeye alınmamak için kaynak kod paylaşımı yapmıyorum.
Efendim, kodları değil de mantığı paylaşabilir misiniz? Aklıma takıldı da. Ben Python ile denedim ama aşırı uzun kod oldu. Aklıma ufak fikirler geldi ancak nasıl yazacağımı bilemedim. Kodları da mantığını anlamak için üstte paylaşmıştım. Sonrada fark ettim ki @bitwise ve @Vavien. efendilerim meğer destek vermiyorlarmış. Yanlışlıkla "Göz Ardı" yedim. Efendilerim, eğer okuyorsanız kusuruma bakmayın.

Kısaca: Nasıl yaptığınızın mantığını anlatır mısınız?
 
Kısaca: Nasıl yaptığınızın mantığını anlatır mısınız?
1599942849949.png


n basamaklı bir sayımız olsun. Ayırma için (n - 1) tane yer vardır.
Üstteki görselde 5 basamaklı ABCDE sayısı için olası bölme nokları.
Turuncu kutular ya boş olacak ya da "+".
2^(n-1) tane farklı şekilde ayırabiliriz.
Bu örnek için n = 5 olduğu için toplam 2^(5-1)'den 16 şekilde ayırabiliriz.

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

0'lar boşluk 1'leri + olarak düşünürsek. 4 bitlik bir doğruluk tablosu oluşturabiliriz.

12345 sayısı için olası tüm ayrımlar.
12345
1234+5
123+45
123+4+5
12+345
12+34+5
12+3+45
12+3+4+5
1+2345
1+234+5
1+23+45
1+23+4+5
1+2+345
1+2+34+5
1+2+3+45
1+2+3+4+5

Genel mantık bu. Sonrasında hesaplama ve kontrol.
 
Eki Görüntüle 666197

n basamaklı bir sayımız olsun. Ayırma için (n - 1) tane yer vardır.
Üstteki görselde 5 basamaklı ABCDE sayısı için olası bölme nokları.
Turuncu kutular ya boş olacak ya da "+".
2^(n-1) tane farklı şekilde ayırabiliriz.
Bu örnek için n = 5 olduğu için toplam 2^(5-1)'den 16 şekilde ayırabiliriz.

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

0'lar boşluk 1'leri + olarak düşünürsek. 4 bitlik bir doğruluk tablosu oluşturabiliriz.

12345 sayısı için olası tüm ayrımlar.


Genel mantık bu. Sonrasında hesaplama ve kontrol.
Elinize sağlık, anladım. Hatta deneyeceğim şimdi ancak muhtemelen o kadar iyi değilim :). Çok güzel anlattınız bu arada, sizin fikriniz mi yoksa yayılmış bir şey mi?
 
Elinize sağlık, anladım. Hatta deneyeceğim şimdi ancak muhtemelen o kadar iyi değilim :). Çok güzel anlattınız bu arada, sizin fikriniz mi yoksa yayılmış bir şey mi?
Kendi çözümüm. Başkaları nasıl yaptı diye bakmadım.
Daha basit şekilde de ayrılabilir. "İki rakam arasında ya artı vardır ya da hiç bir şey yoktur" gibisinden düşündüğüm için aklıma ilk ikilik sistem ile çözmek geldi.
 
Kendi çözümüm. Başkaları nasıl yaptı diye bakmadım.
Daha basit şekilde de ayrılabilir. "İki rakam arasında ya artı vardır ya da hiç bir şey yoktur" gibisinden düşündüğüm için aklıma ilk ikilik sistem ile çözmek geldi.
Vay be! Elinize sağlık gerçekten. Teşekkür ederim.
 

Geri
Yukarı