problema c++
#1
Posted 20 April 2014 - 19:14
Se da un numar n. Sa se verifice daca numarul obtinut prin eliminarea primei si ultimei cifre este palindrom.
Stiu cum sa demonstrez ca este palindrom si sa elimin ultima cifra, insa nu stiu cum pot elimina prima cifra... |
#3
Posted 20 April 2014 - 19:36
maria17, on 20 aprilie 2014 - 19:14, said:
nu stiu cum pot elimina prima cifra... http://info.mcip.ro/...entari&prob=242 Ai acolo cum tai prima si ultima cifra. Practic, ai numarul 12345 ; daca il inversezi vine 54321 , daca tai ultima cifra (/10) vine 5432, iar inversat din nou = 2345 (prima cifra este eliminata.) Edited by sftpdt, 20 April 2014 - 19:49. |
#4
Posted 20 April 2014 - 19:41
#5
Posted 20 April 2014 - 19:42
Salut,am reusit sa iti fac eu o rezolvare pas cu pas.Aceasta rezolvare nu este optima dar este buna pentru ca sa intelegi fiecare pas ce face.Acum tu poti incerca sa faci o rezolvare optima a acestei probleme,adica sa mai elimini din variabilele in plus.sper ca te.am ajutat.Bafta.
PS: dai click pe poza si pe descarca ca sa vezi ce am scris la comentarii in program. Attached FilesEdited by alyprofu, 20 April 2014 - 19:44. |
#6
Posted 20 April 2014 - 19:51
MarianG, on 20 aprilie 2014 - 19:31, said:
Stii sa scrii un numar ca suma de elemente in baza 10? Nu.. alyprofu, on 20 aprilie 2014 - 19:42, said:
Salut,am reusit sa iti fac eu o rezolvare pas cu pas.Aceasta rezolvare nu este optima dar este buna pentru ca sa intelegi fiecare pas ce face.Acum tu poti incerca sa faci o rezolvare optima a acestei probleme,adica sa mai elimini din variabilele in plus.sper ca te.am ajutat.Bafta. PS: dai click pe poza si pe descarca ca sa vezi ce am scris la comentarii in program. Multumesc |
#7
Posted 20 April 2014 - 20:01
maria17, on 20 aprilie 2014 - 19:51, said:
Nu.. sftpdt, on 20 aprilie 2014 - 19:36, said:
Practic, ai numarul 12345 ; daca il inversezi vine 54321 , daca tai ultima cifra (/10) vine 5432, iar inversat din nou = 2345 (prima cifra este eliminata.) Quote numar=1234 r=432 numar=234 Quote numar=1234 r=4321 r=432 numar=234 exponent = log10 (numar); // determinare exponent modf(exponent,&exponent); // inlaturare mantisa exponent modf(numar/pow(10,exponent),&cifra); numar-=cifra * pow(10,exponent); // prima cifra numar/=10; // ultima cifra modf(numar,&numar); // inlaturare mantisa numar printf("%2.f",numar);practic poti foarte usor sa transpui cifrele intr-un apoi compari de unde vrei Edited by MarianG, 20 April 2014 - 20:25. |
#8
Posted 20 April 2014 - 20:04
MarianG, on 20 aprilie 2014 - 20:01, said:
practic ii faci varza'n creier. Nu stie sa elimine prima cifra. Daca ii bagi pe gat modf / alte chestii rezolvi ceva? E ca si cum un elev in clasa a opta trebuie sa afle aria subgraficului unei functii de gradul 1 intre 2 puncte (rezulta un trapez banal) si ii bagi in cap formula cu integrala. Edited by sftpdt, 20 April 2014 - 20:08. |
#9
Posted 20 April 2014 - 20:15
cred ca eu i.am pus o rezolvare cat de cat ok si rezolvarea aceasta cred ca este si la nivelul userului,eu sunt elev in clasa a 10-a si in clasa a 8-a am invatat ca pentru a elimina prima cifra sa folosesc metoda de mai sus scrisa de mine.
|
#10
Posted 20 April 2014 - 20:17
|
#11
Posted 20 April 2014 - 20:20
Mai bine ii pui un cod usor de inteles, chit ca nu-i eficient, decat sa-i pui cine stie ce cod si sa nu-l inteleaga nimeni.
|
#12
Posted 20 April 2014 - 20:26
#13
Posted 20 April 2014 - 20:27
int n, inv=o, x;
cout<<"n=";cin>>n; x=n; while (x!=0) {inv=inv*10+x%10; x=x/10; } cout<<"inv="<<inv; if(inv=x) cout<<"este palindrom"; pt domnul MarianG |
#14
Posted 20 April 2014 - 20:33
MarianG, on 20 aprilie 2014 - 20:26, said: Daca asa se rezolva cel mai usor, ce vrei sa pui altceva? Cum ziceam mai sus, unul elev de clasa a opta cum ii faci aria subgraficului unei functii de gradul 1? Faci frumos cu formula ariei (pt. trapez / triunghi) sau ii trantesti o integrala ca deh, ce mai invata? Edited by sftpdt, 20 April 2014 - 20:39. |
#15
Posted 20 April 2014 - 20:34
nu inteleg de ce mai discutati aici avand in vedere ca i.am pus eu deja o rezolvare de clasa a 9-a sa spunem. MarianG nu poti sa ii arati o rezolvare ce foloseste ceva ce nu a a invatat la scoala(presupun ca este elev userul nostru).rezolvarea mea este cea mai buna pentru un elev.
|
|
#16
Posted 20 April 2014 - 20:50
maria17, on 20 aprilie 2014 - 20:27, said:
int n, inv=o, x; cout<<"n=";cin>>n; x=n; while (x!=0) {inv=inv*10+x%10; x=x/10; } cout<<"inv="<<inv; if(inv=x) cout<<"este palindrom"; pt domnul MarianG vezi ca ai erori de logica, asta se intampla cand lucrezi cu litere si nu cu etichete alyprofu, on 20 aprilie 2014 - 20:34, said:
nu inteleg de ce mai discutati aici avand in vedere ca i.am pus eu deja o rezolvare de clasa a 9-a sa spunem. MarianG nu poti sa ii arati o rezolvare ce foloseste ceva ce nu a a invatat la scoala Noi am folosit acelasi principiu matematic, si anume scaderea elementului cu cel mai mare exponent Edited by MarianG, 20 April 2014 - 20:51. |
#17
Posted 20 April 2014 - 21:14
Daca tot o aredeti pe C++
#include <iostream> // std::cout #include <algorithm> // std::reverse #include <vector> // std::vector using namespace std; bool compara (int i, int j) { return (i==j); } int main () { int numar=6556; vector<int> myvector, ndvector; // set some values: while( 0 != numar) { myvector.push_back(numar%10); ndvector.push_back(numar%10); numar/=10; } reverse(myvector.begin(),myvector.end()); if ( equal (myvector.begin(), myvector.end(), ndvector.begin(), compara) ) cout << "este palindrom"; else cout << "nu este palindrom"; return 0; } |
#18
Posted 20 April 2014 - 21:22
MarianG, on 20 aprilie 2014 - 21:14, said:
Daca tot o aredeti pe C++ #include <iostream> // std::cout #include <algorithm> // std::reverse #include <vector> // std::vector using namespace std; bool compara (int i, int j) { return (i==j); } int main () { int numar=6556; vector<int> myvector, ndvector; // set some values: while( 0 != numar) { myvector.push_back(numar%10); ndvector.push_back(numar%10); numar/=10; } reverse(myvector.begin(),myvector.end()); if ( equal (myvector.begin(), myvector.end(), ndvector.begin(), compara) ) cout << "este palindrom"; else cout << "nu este palindrom"; return 0; } prietene scuze,dar pentru ca ti.ar trebui asemenea cunostinte pentru o problema asa de simpla?ce nu iti convine la rezolvarea mea? Edited by alyprofu, 20 April 2014 - 21:23. |
Anunturi
▶ 1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users