Írjunk programot, amely a megadott szó permutációját végzi el.
Vizsgálat történik arra, hogy a szó hossza 2-8 között lehet.
A feladat megoldása
const int maxnum = 8;
StringBuilder szo;
int nbetu, nperm;
private void button1_Click(object sender, EventArgs e)
{
if(textBox1.Text != "")
{
szo = new StringBuilder(textBox1.Text);
listBox1.Items.Clear();
nbetu = szo.Length;
nperm = 1;
if (nbetu >= 2 && nbetu < maxnum + 1)
{
permut(nbetu - 1);
}
else
{
MessageBox.Show("Hibás adat: 2-8 között lehet!",
"Figyelmeztetés");
textBox1.Text = "";
listBox1.Items.Clear();
}
}
}
private void swapnm(int n, int m)
{
char z = szo[n];
szo[n] = szo[m];
szo[m] = z;
}
private void permut(int k)
{
for (int i = 0; i <= k; i++)
{
swapnm(i, k);
if (k != 0)
{
permut(k - 1);
}
else
{
listBox1.Items.Add(nperm.ToString("00000") +
" - " + szo);
nperm++;
}
swapnm(k, i);
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
listBox1.Items.Clear();
}
A program futási eredményei: