Imi poate rezolva si mie cineva o problema ?
Se considera sirul cifrelor de la 0 la 9. Sa se genereze toate numerele de n cifre (n<10) care contin trei cifre pare sau trei cifre impare alaturate. Fiecare numar se scrie in fisier pe cate un rand.
Răspunsuri la întrebare
Răspuns de
1
Mai ramane sa inlocuiesti scrirea rezultatelor pe ecran cu cea in fisierul cu numele...
#include <iostream>
using namespace std;
int st[10], n;
int f(int st[], int n){ int a, b, c; a=st[n]; b=st[n-1]; for (int i=n-2; i>=1; i--) { c=st[i]%10; if(a%2==b%2 && b%2==c%2) return 1; a=b; b=c; } return 0;}
void bkt(int st[], int k){ if(k==n+1) { if(st[1]>0 && f(st, n)) { for(int i=1; i<=n; i++) cout<<st[i]; cout<<endl; } } else for(int i=0;i<=9;i++) { st[k]=i; bkt(st, k+1); }}
int main(){ cin>>n; bkt(st, 1); return 0;}
#include <iostream>
using namespace std;
int st[10], n;
int f(int st[], int n){ int a, b, c; a=st[n]; b=st[n-1]; for (int i=n-2; i>=1; i--) { c=st[i]%10; if(a%2==b%2 && b%2==c%2) return 1; a=b; b=c; } return 0;}
void bkt(int st[], int k){ if(k==n+1) { if(st[1]>0 && f(st, n)) { for(int i=1; i<=n; i++) cout<<st[i]; cout<<endl; } } else for(int i=0;i<=9;i++) { st[k]=i; bkt(st, k+1); }}
int main(){ cin>>n; bkt(st, 1); return 0;}
MichaelKing:
Se poate rezolva si fara backtracking!
Alte întrebări interesante
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Istorie,
9 ani în urmă