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.