Cerinta
Se citesc de la tastatura doua numere naturale A si B. Sa se insereze numarul B la jumatatea numarului A.
De exemplu daca citim A = 1234 si B = 77 atunci rezultat obtinut va fi N = 127734.
Date de intrare
Pe prima linie se vor afla numerele naturale A si B.
Date de iesire
Se va afisa rezultatul obtinut dupa inserare.
Restrictii si precizari
0 < A, B < 1,000,000
Se garanteaza faptul ca A are un numar par de cifre.
Exemplu
Date de intrare Date de iesire
123456 9 1239456
1234 77 127734.
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int A, B, v[11], k, i, j, inv, aux;
int main()
{
cin>>A>>B;
aux=A;
while(aux)
{inv=inv*10+aux%10;
aux/=10;}
while(inv)
{
v[++k]=inv%10; /// cream un vector cu cif lui A
inv/=10;
}
for(i=1; i<=k; i++)
if(i==k/2){
for(j=k; j>=i+1; j--)
v[j+1]=v[j];
v[i+1]=B;
k++, i++;
}
for(i=1; i<=k; i++)
cout<<v[i];
return 0;
}
Răspuns:
Explicație:
Ti-am facut problema in C++. Sper ca asta doreai.
#include <iostream>
using namespace std;
int a,b,nr;
int main()
{
cin >> a; // Primul nr.
cin >> b; // Al doilea nr.
int x=a; // Creez o variabila care sa ii ia locul lui a pt. urmatoarea secv. repetitiva (While)
a=0; // Aici poti lua orice variabila doresti. Eu am reutilizat a.
while(x){
a=a*10+x%10; // Aceasta secventa transf. variabila a in inversul variabilei x (Ex. Ai citit la inceput a=1234 = > x=1234, a=0; La finalul secv. a va deveni 4321.
x=x/10;
nr++; // Numarul de cifre, creste dupa fiecare impartire a variabilei x.
}
for(int i=1;i<=nr;i++)
{ // Secv. repetitiva pentru a afisa cifrele variabilei a (Din exemplul anterior, a=4321, asa ca acest algoritm va afisa, pe rand, cifra 1,2,3 si 4).
if(i==nr/2) {
cout << a%10 << b;
} // Daca i= Nr. de cifre / 2, atunci afiseaza si variabila b dupa cifra contorizata/
else cout << a%10;
a=a/10;
}
}
Mult noroc si sper ca ai inteles.