eduardovp97

llenarDosInstancias

Sep 20th, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.88 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define N 100
  4.  
  5. void printArray(int array[], int n){
  6.     int i;
  7.     for(i=0; i<n; i++)
  8.         printf("%d ",array[i]);
  9.         printf("\n");
  10. }
  11.  
  12. int isValid(int array[], int i, int count){
  13.     int j;
  14.     for(j=0; j<count; j++){
  15.         if(array[j] == i){
  16.             if(count-j-1== i){
  17.                 return 1;
  18.             }else{
  19.                 return 0;
  20.             }
  21.         }
  22.     }
  23.     array[count] = i;
  24.     return 1;
  25. }
  26.  
  27. int sacarArreglo(int array[], int n, int count){
  28.     if(count == n*2) return 1;
  29.     int i;
  30.     for(i=1; i<=n; i++){
  31.         if(isValid(array,i,count)){
  32.             array[count] = i;
  33.             //printArray(array,count+1);
  34.             if(sacarArreglo(array, n, count+1))
  35.             return 1;
  36.         }
  37.     }
  38.     return 0;
  39. }
  40.  
  41. int main(){
  42.  
  43.     int n = 3;
  44.     int array[N];
  45.  
  46.     if(sacarArreglo(array,n,0)){
  47.             printf("Para n = %d\n",n);
  48.         printArray(array,n*2);
  49.     }else{
  50.         printf("No se encontro solucion.");
  51.     }
  52.  
  53.     return 0;
  54. }
Add Comment
Please, Sign In to add comment