I have programmed an application to solve this problem and will also include the source code for it.
Code:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Lockers { public partial class frmLockers : Form { int[] Lockers; public frmLockers() { InitializeComponent(); } private void frmLockers_Load(object sender, EventArgs e) { txtLockers.Focus(); } private void btnRun_Click(object sender, EventArgs e) { try { int iLockers = Convert.ToInt32(txtLockers.Text) + 1; rtbOutput.Clear(); Simulate(iLockers); DisplayOutput(iLockers); } catch { MessageBox.Show("Your input was not in integer format!"); } } private void Simulate(int iLockers) { Lockers = new int[iLockers]; prgLockers.Maximum = iLockers - 1; for (int i = 1; i <= iLockers - 1; i++) { Lockers[i] = -1; } for (int iLearner = 1; iLearner <= iLockers - 1; iLearner++) { for (int iLockerNum = 1; iLockerNum <= iLockers - 1; iLockerNum++) { if ((iLockerNum) % (iLearner) == 0) { Lockers[iLockerNum] = Lockers[iLockerNum] * (-1); } } prgLockers.Value = iLearner; Application.DoEvents(); } } private void DisplayOutput(int iLockers) { string sOutput = ""; int iLockersOpen = 0; for (int i = 1; i <= iLockers - 1; i++) { if (Lockers[i] == 1) { sOutput += i.ToString() + " is open.\n"; iLockersOpen++; } else { sOutput += i.ToString() + " is closed.\n"; } } rtbOutput.Text = "Lockers open: " + iLockersOpen.ToString() + "\n\n" + sOutput; } private void btnExit_Click(object sender, EventArgs e) { Application.Exit(); } } }


LinkBack URL
About LinkBacks