PDA

View Full Version : سوال: چینش بازیکنان در زمین فوتبال



mahdi.ghas
پنج شنبه 10 بهمن 1392, 18:09 عصر
با سلام و خسته نباشد خدمت دوستان عزیز
می خواستم یه راهنمایی درباره ...
یه برنامه یا الگوریتم که تعداد بازیکن را دریافت کنه و حالات مختلف چینش آنها را محاسبه کند
مثال:
ورودی ---> 11

حالات مختلف ---->3-4-3 و 4-4-2 و 3-4-4 و .....
ممنون میشم اگه کمکم کنید
مرســــــی

mb.Discover
پنج شنبه 10 بهمن 1392, 21:56 عصر
سلام
ایده من اینه:


int n = 11;
for (int i = 1; i < n - 2; i++)
for (int j = 1; j < n - i; j++)

Console.WriteLine("{0}{1}{2}",i,j,n-(i+j));

rahnema1
جمعه 11 بهمن 1392, 01:46 صبح
سلام
یه کم پیچیده تره


using System;
using System.Linq;
using System.Text;
namespace footb
{
class Program
{
static int[]arrange;
static string [] bazikon;
static string[] chars = new String[2]{"0",","};
static int numberOfLoops;
static int numberOfIterations=2;
static int[] loops;
static void NestedLoops(int currentLoop)
{
if (currentLoop == numberOfLoops)
{
for (int i = 0; i < numberOfLoops; i++)
{
bazikon[i*2+1]=chars[loops[i]];
}
arrange=String.Concat(bazikon).Split(new char[]{','})
.Select(x=> x.Select(y => int.Parse(y.ToString())).Sum())
.ToArray();
foreach (int saf in arrange) Console.Write("{0} ", saf);
Console.WriteLine();
return;
}
for (int counter=0; counter<numberOfIterations; counter++)
{
loops[currentLoop] = counter;
NestedLoops(currentLoop + 1);
}
}
public static void Main(string[] args)
{
Console.Write("n = ");
int n = int.Parse(Console.ReadLine());
numberOfLoops=n-1;
bazikon=new string[2*n-1];
loops=new int[numberOfLoops];
for (int i = 0; i < 2*n-1; i++) bazikon[i]=(i%2==0?"1":",");
NestedLoops(0);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}

mahdi.ghas
دوشنبه 28 بهمن 1392, 17:16 عصر
مرسی عزیزم