Forum » Programiranje » Mucim se z nalogo C++
Mucim se z nalogo C++

MareMareCare ::
Pozdravljeni.
Trenutno se zelo mucim z nalogo, ki mi je bila dana ze dolgo nazaj in sicer. Napisati moram funkcijo, ki v podanem stevilu tipa int zamenja prvo in zadnjo stevko.
Primer funkcije:
int zamenjaj(int n)
zamenjaj(123456) //izpis 623451.
Hvala za vsako pomoc.
Trenutno se zelo mucim z nalogo, ki mi je bila dana ze dolgo nazaj in sicer. Napisati moram funkcijo, ki v podanem stevilu tipa int zamenja prvo in zadnjo stevko.
Primer funkcije:
int zamenjaj(int n)
zamenjaj(123456) //izpis 623451.
Hvala za vsako pomoc.

Tr0n ::
Ena moznost je, da castas v string oz. char*, zamenjas znak na indexu 0 in lenght in castas nazaj v int.

ERGY ::
Tak, da bo delalo tudi za negativna stevila 

#include <iostream>
#include <sstream>
int zamenjaj(int n)
{
std::stringstream s;
std::string snum;
if(n >= 0)
{
s << n;
s >> snum;
std::swap(snum[0], snum[snum.length()-1]);
return (atoi(snum.c_str()));
}
else
{
s << n;
s >> snum;
std::swap(snum[1], snum[snum.length()-1]);
return (atoi(snum.c_str()));
}
}
Zgodovina sprememb…
- spremenilo: ERGY ()

Genetic ::
int SwapFirstLast(int n)
{
int s = 1;
if (n<0) n*=(s*=-1);
int l = n%10;
n/=10;
int m = n*10;
int i = 1;
while ((n>0)&&(i*=10)) n/=10;
return s*(l*i+m%i+m/i);
}
Zgodovina sprememb…
- spremenil: Genetic ()

ERGY ::
int SwapFirstLast(int n)
{
int s = 1;
if (n<0) n*=(s*=-1);
int l = n%10;
n/=10;
int m = n*10;
int i = 1;
while ((n>0)&&(i*=10)) n/=10;
return s*(l*i+m%i+m/i);
}
Ta koda je precej boljsa, ker deluje tudi za negativna stevila. Lepo.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# (strani: 1 2 )Oddelek: Programiranje | 12589 (9424) | Ericssony |
» | Program v COddelek: Programiranje | 2027 (1866) | darkkk |
» | [C++] RekurzijaOddelek: Programiranje | 3439 (3180) | A1eN |
» | [Java] Liha potencaOddelek: Programiranje | 1901 (1795) | bijonda |
» | c++ in linux/windowsOddelek: Programiranje | 1793 (1669) | rapvirus |