C# – Alt Küme Bulma ve Ekrana Yazdırma
Bu kodlar Windows Console Application’da Klavyeden alınan ya da verilen bir kümenin tüm alt kümelerini ve alt kümelerinden toplamları 50 olan altküme sayısını ekrana yazdırır.
Kolay Gelsin..
static void Main(string[] args) { #region klavyedenKüme //Console.WriteLine("Kümenin Eleman Sayısını Giriniz:"); //int es = Convert.ToInt32(Console.ReadLine()); //var kume = new string[es]; //for (int i = 0; i < es; i++) //{ // Console.WriteLine(String.Format("{0}.Eleman : ",i)); // kume[i] = Console.ReadLine(); //} #endregion //Yunus Ünsal var _kume = "1,2,3,4,5,6,7,8,9,10,11,12"; var kume = _kume.Split(','); var altkume = AltKumeBul(kume); var sayi = AltkToplam(altkume); Console.WriteLine("Küme toplamı 50 olan altküme sayısı: " + sayi); Console.ReadKey(); } private static int AltkToplam(List<string> altkume) { string[,] altk = new string[4,altkume.Count]; int adet = 0; foreach (var v in altkume) { if (v != "") { int toplam = 0; var temp = v.Split(','); var l = temp.Length; toplam += temp.Sum(s => Convert.ToInt32(s)); if (toplam == 50) { adet++; } } } return adet; } private static List<string> AltKumeBul(string[] kume) { int es = kume.Length; int aks = AksHesap(es); List<string> t = new List<string>(); string[,] altkume = new string[es,aks]; t.Add(""); foreach (var s in kume) { int x = t.Count(); for (int y = 0; y < x; y++) { if (y == 0) { Console.WriteLine("{"+ t[y] + s+"}"); t.Add(t[y] + s); } else { Console.WriteLine("{" + t[y] + "," + s + "}"); t.Add(t[y] + "," + s); } } } return t; } private static int AksHesap(int es) { return (int) Math.Pow(2, es); }
çok teşekkürler. okuldan verilen bir ödevdi , çok işime yaradı