Afişează mesaje
|
|
Pagini: [1]
|
|
2
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Problema la informatica
|
: Martie 08, 2014, 10:48:55
|
|
Ma puteti ajuta sa rezolv urmatoarea problema: Fişierul text NR.TXT conţine pe o singură linie, separate prin câte un spaţiu, cel mult 100 de numere întregi, fiecare număr având cel mult 4 cifre. Scrieţi un program C/C++ care citeşte numerele din fişierul NR.TXT şi afişează pe ecran, separate prin câte un spaţiu, în ordine crescătoare, toate numerele naturale nenule din fişier. Dacă nu există astfel de numere se va afişa pe ecran mesajul NU EXISTA. Exemplu: dacă fişierul NR.TXT conţine numerele: -3 -10 0 7 -5 7 51 -800 6 3798, atunci pe ecran se va afişa: 6 7 7 51 3798
|
|
|
|
|
3
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Metoda backtracking
|
: Februarie 25, 2014, 22:20:58
|
|
De fapt am scris programul ,dar nu afiseaza nici o solutie.
#include <iostream>
using namespace std; int st[100],i,n,k,numara=0,c1,c2,c3; void init() { if(k==1) st[k]=0; else st[k]=1; } int succesor() { if(st[k]<n) { st[k]=st[k]+1; return 1; } else return 0; } int valid() { if(((st[k]==c1)||(st[k]==c2)||(st[k]==c3))) return 0; return 1; } int solutie() { long x=0,p=1,ok=0; for(i=1;i<=k;i++) { x=x*p+st; p*=10; } for(i=2;i<=x/2 && ok;i++) if(x%i==0) ok=0; return(k==n && ok); } void tipar() { numara++; for(i=1;i<=k;i++) cout<<st<<' '; cout<<endl; } void back() { int as,ev; k=1; init(); while(k>0) { do { as=succesor(); if(as) ev=valid(); } while(as && (!as || !ev)); if(as) if(solutie()) tipar(); else { k++; init(); } else k--; } } int main() { cout<<"dati n:"; cin>>n; cout<<"dati numerele:"; cin>>c1>>c2>>c3; back(); cout<<"nr solutii:"<<numara<<endl; return 0;
}
|
|
|
|
|
4
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Metoda backtracking
|
: Februarie 25, 2014, 15:36:41
|
|
Sa se genereze toate numerele prime de n cifre(n<10),formate cu cifrele c1,c2,c3 citite de la tastatura. Ex: n=4; c1=1; c2=5; c3=3; Solutii: 1151,1153,1511,1553,...
|
|
|
|
|