C# Da Tek Satırda Programlama Yarışması
-
HolyOne bunu yazdı:
-----------------------------Haha
istiosaniz ayni yarismayi ayni soruyla bidaha yapalim ama ayni yontemle katilmak yok=)
piskopat zor olur ama, daha sonraya saklayak
-----------------------------Aynen daha sonraya saklıyalım fazla zorada ne gerek var demi ama xD her neyse
İzlediğim derslerde hoca bi konuyu anlatırkan olimpiyatlarda çıkmış bi soruyu göstermişti istersen onu yapalım.
Klasik toplama işlemi. Programlama olimpiyatlarında 40 basamaklı iki sayının toplanmasını sormuşlar,tabi yarışmacılar biraz sazanlık yapıp double türünden iki değişkenle halledebileceklerini düşünmüşler ama double 39 basamaklı sayıyı içinde barındarabilir xD kafadan elenmişler xD
-
HolyOne bunu yazdı:
-----------------------------Evet baya bir süredir fikir yazan olmadığına göre cevapları veriyorum. (aslında cevaplarim yoktu da simdi yazdim )
int[] sayilar = new int[] { 9, 2, 4, 3, 5, 7, 6, 10, 1, 8};
Toplam: Console.WriteLine("Toplam:"+ sayilar.Sum());
Maximum: Console.WriteLine("Max:" + sayilar.Max());
Çarpım: for (int j = 1, i = 0; i < sayilar.Length ; j *= (sayilar [i++])) if (i == sayilar.Length - 1) Console.WriteLine("Carpimlari:" + (j* sayilar [i ] ));
Sıralama: Console.Write("siralama:" + String.Join(",",(from p in sayilar orderby p select p.ToString()).ToArray() ) );
Kabul ediyorum biraz zordu son ikisi (ozellikle çarpım) ama bir sonraki tek satır kod yarismasi için iyi kaynak olur.
Önemli olan yarışmaktı tabi
Çok pis tek satırda program yazarım, varsa meydan okuyan her zaman hazırım derim ve kacarım hacılar, hörmetlerimle.
-----------------------------Sana kafa tutan olabilir mi ağam :D YÜCE ŞEYHİMİZ
-
bir dahaki yarışmayı dilden bağımsız yapalım, isteyen istediği dilde yazsın, herkes c# cı değil ;)
-
carpim...
C# kadar esnek olmasada bu sekilde yapilabilir.
Dim dizi() As Integer = {9, 2, 4, 3, 5, 7, 6, 10, 1, 8}
Dim j As Integer, carpim = 1
For j = 0 To UBound(dizi) : carpim = carpim * dizi(j) : Next : MsgBox(carpim)
-
vb.Net ile de en kisa bu sekilde yazilir. sanirim en kısa carpma islemide bu :D haha
hatta
HOLYONE
____________________________________________________________for (int j = 1, i = 0; i < sayilar.Length ; j *= (sayilar [i++])) if (i == sayilar.Length - 1) Console.WriteLine("Carpimlari:" + (j* sayilar [i ] ));
3 adet ; noktali virgul kullanilmiş.
WHO!
___________________________________________________________For j= 0 To UBound(dizi) : carpim *= dizi(j) : Next : MsgBox(carpim)
bende 3 adet : ikinokta kullandim XD :Dbu :D
dahada kısaltilamaz :)
