Dato un ampio elenco di numeri interi (più di 1 000 000 valori), scopri quanti modi ci sono di selezionarne due che sommano a 0 .... domandaTrovare una somma intera in un array di 1 000 000
Quello che ho fatto è creare un positivo lista intero casuale:
Random pos = new Random();
int POSNO = pos.Next(1, 1000000);
lstPOS.Items.Add(POSNO);
lblPLus.Text = lstPOS.Items.Count.ToString();
POSCount++;
e ha creato un elenco negativo:
Random neg = new Random();
int NEGNO = neg.Next(100000, 1000000);
lstNEG.Items.Add("-" + NEGNO);
lblNegative.Text = lstNEG.Items.Count.ToString();
NegCount++;
Per fare la somma controllando che sto usando:
foreach (var item in lstPOS.Items)
{
int POSItem = Convert.ToInt32(item.ToString());
foreach (var negItem in lstNEG.Items)
{
int NEGItem = Convert.ToInt32(negItem.ToString());
int Total = POSItem - NEGItem;
if (Total == 0)
{
lstADD.Items.Add(POSItem + "-" + NEGItem + "=" + Total);
lblAddition.Text = lstADD.Items.Count.ToString();
}
}
}
So che questo non è il percorso più veloce. Ho preso in considerazione l'utilizzo di un array. Hai qualche suggerimento?
Qual è il tipo di 'lstPOS' e' lstNEG'? – MarcinJuraszek
Non penso che tu voglia convertire i tuoi numeri interi in stringhe quando li inserisci negli elenchi. Perché farlo? –
lstPOS e lstNEG sono semplici listbox. Li ho usati per la rappresentazione visiva. Quando li aggiungo alla listbox sono ancora interi. Se estraggo dalla listbox, manterrà la forma intera o passerà alla voce listbox? –