Răspuns :
Am niste nelamuriri in legătură cu cerința asa ca voi face două subprograme pe care le voi explica mai jos.
int subp1 (int &n)
{
int aux;
aux=n;
while ( aux>9)
{
aux=aux/10;
}
n=aux*2;
return n;
}
subprogramul scris mai sus, ia un numar intreg n. Declarăm un aux căruia ii atribuim valoarea lui n. Îl "ciopârțim" pe aux până când ii aflăm prima cifră si apoi atribuim lui n valoarea cifrei respective inmultita cu 2
int subp2 (int &n)
{
int aux, cnt=0, a [23];
aux=n;
while ( aux!=0)
{
cnt=cnt++;
a [cnt]= aux%10;
aux=aux/10;
}
aux=a[cnt]*2;
for (int i=cnt-1; i>0; i--)
{
aux=aux*10 +a [i];
}
n=aux;
return n;
}
subp2, ia numărul n si ii alocă valoarea lui aux. Aux-ul este descompus in cifre, iar acestea sunt puse intr-un tablou unidimensional a, iar cnt reprezintă numărul de cifre. Reconstruim aux-ul, dublandu-i prima cifră si apoi atribuim lui n valoarea lui aux.
Nu sunt un as al programării si sunt sigur ca există si variante mai eficiente ale acestor subprograme, dar sper ca ti-am fost de ajutor.
int subp1 (int &n)
{
int aux;
aux=n;
while ( aux>9)
{
aux=aux/10;
}
n=aux*2;
return n;
}
subprogramul scris mai sus, ia un numar intreg n. Declarăm un aux căruia ii atribuim valoarea lui n. Îl "ciopârțim" pe aux până când ii aflăm prima cifră si apoi atribuim lui n valoarea cifrei respective inmultita cu 2
int subp2 (int &n)
{
int aux, cnt=0, a [23];
aux=n;
while ( aux!=0)
{
cnt=cnt++;
a [cnt]= aux%10;
aux=aux/10;
}
aux=a[cnt]*2;
for (int i=cnt-1; i>0; i--)
{
aux=aux*10 +a [i];
}
n=aux;
return n;
}
subp2, ia numărul n si ii alocă valoarea lui aux. Aux-ul este descompus in cifre, iar acestea sunt puse intr-un tablou unidimensional a, iar cnt reprezintă numărul de cifre. Reconstruim aux-ul, dublandu-i prima cifră si apoi atribuim lui n valoarea lui aux.
Nu sunt un as al programării si sunt sigur ca există si variante mai eficiente ale acestor subprograme, dar sper ca ti-am fost de ajutor.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!