C# ban ezt hogy oldjam meg? Tobbi lent.
Adott egy szamsor pl:12345
Ezt egy int tombbe helyeznem, ami joval hosszabb mint a szamsor.
Azt szeretnem elerni, h ez a szamsor a tombon belul tologathato legyen. Kellene egy olyan utasitas, ami a tomb feltoltott elemeit elore hatra kepes egyszerre eltolni. Pl. A tombom alapbol:1234500000.
1 tolas utan:0123450000,
2 tolas utan:0012345000,
Es igy tovabb.
1. A premature optimization bad practice
2. A bittolás azért nem teljesen ugyanez a szituáció
3. Ne dolgozz inttel és tömbbel (lásd még pl. primitive obsession), és nincs ilyen probléma
A vázolt helyzetben kénytelen leszel egyesével átpakolni a számokat.
"egy zsákravaló kóddal"
Ez mondjuk épp nem egy zsákravaló kód.
Egy ciklus, 4 sor.
Ha kicsit változtatsz az adatstruktúrán, és mondjuk láncolt listát használsz (csak hogy maradjunka primitív típusoknál), akkor konkrétan 2 utasítás.
Int[] a = {1,2,3,4,5,0,0,0,0,0};
For(int i=0; i<a.length; i++)
{
a[i] = a[i] -1;// de ez nem jo ide.
Nem a tomb erteke kell nekem, hanem h arrebb tolja egy indexel az ertekeket benne.
Oke, talan ugy latszik, h itt arreb tolja, de mi a helyzet akkor ha
Int[] b={1,0,0,1,1,1,0,0,1,0};
For(int i=0; i<b.length; i++)
{
If(b[i] < 1)
{
b[i] = b[i] +1;
}
Esle
b[i] = b[i] -1;
Mondjuk ez meg mukodne is., de nincs egyszerubb megoldas, minthogy egy for vegigfusson a tombon, es egyenkent vizsgalja meg a feltetelt?
Ha stringet használsz könnyebb:
public static string Left(string param, int length)
{
//we start at 0 since we want to get the characters starting from the
//left and with the specified lenght and assign it to a variable
string result = param.Substring(0, length);
//return the result of the operation
return result;
}
public static string Right(string param, int length)
{
//start at the index based on the lenght of the sting minus
//the specified lenght and assign it a variable
string result = param.Substring(param.Length - length, length);
//return the result of the operation
return result;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!