Răspuns :
Te mai poti folosi de alta proprietate a numerelor pare si impare pentru a descoperi ultimele 2 numere impare
impar+impar=par
par+impar=impar
Deci observi ca un numar impar schimba paritatea numarului la care este adunat
Asa ca putem incepe cu o suma s=0 si adunam termeni din coada sirului de numere. Daca suma nou obtinuta are paritate diferita de cea veche, atunci inseamna ca am trecut peste un numar impar.
Codul e mai jos.
#include <iostream>
using namespace std;
int main()
{
int n,i,schimbari_paritate=0,ultimul_impar,s=0;
cin>>n;
int v[n];
for(i=0;i<n;i++){
cin>>v[i];
}
i=n-1;
while(schimbari_paritate<2){
if(s%2!=(s+v[i])%2){
if(schimbari_paritate==0){
ultimul_impar=v[i];
}
else{
cout<<v[i]<<" ";
}
schimbari_paritate++;
}
s=s+v[i];
i--;
}
cout<<ultimul_impar;
return 0;
}
impar+impar=par
par+impar=impar
Deci observi ca un numar impar schimba paritatea numarului la care este adunat
Asa ca putem incepe cu o suma s=0 si adunam termeni din coada sirului de numere. Daca suma nou obtinuta are paritate diferita de cea veche, atunci inseamna ca am trecut peste un numar impar.
Codul e mai jos.
#include <iostream>
using namespace std;
int main()
{
int n,i,schimbari_paritate=0,ultimul_impar,s=0;
cin>>n;
int v[n];
for(i=0;i<n;i++){
cin>>v[i];
}
i=n-1;
while(schimbari_paritate<2){
if(s%2!=(s+v[i])%2){
if(schimbari_paritate==0){
ultimul_impar=v[i];
}
else{
cout<<v[i]<<" ";
}
schimbari_paritate++;
}
s=s+v[i];
i--;
}
cout<<ultimul_impar;
return 0;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Ne bucurăm dacă informațiile v-au fost de folos. În cazul în care aveți întrebări suplimentare sau doriți sprijin adițional, nu ezitați să ne contactați. Revenirea dumneavoastră ne onorează, iar dacă apreciați conținutul nostru, vă invităm să ne salvați în lista de site-uri preferate!