Задача: Код
Исходник: laba_4, язык: C [code #624, hits: 11206]
аноним: Володька [добавлен: 08.04.2011]
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <iostream.h>
  4. #include <math.h>
  5. #include <memory>
  6.  
  7. int main () {
  8. int N;
  9. cout<<"N="; cin>>N;
  10. int n, m;
  11. n=int(2*log(double(N)))+2;
  12. FILE * f;
  13. f = fopen("answer.txt","r+");
  14. int* arr1 = new int[n];
  15. int* arr2 = new int[n];
  16. int* arr = new int[2*n];
  17. for (int i = 0; i < n; i++)
  18. arr1[i] = (pow(2,(i+1))); //последовательность 2^k
  19. for (int k = 0; k < n; k++)
  20. arr2[k] = (pow(3,(k))); //последовательность 3^k
  21. k = i = m = 0;
  22. do { //цикл упорядочивания двух массивов по возрастанию
  23. if (arr1[i] < arr2[k] )
  24. arr[m++] = arr1[i++]; //Игорь мудак
  25. else
  26. if (arr1[i] > arr2[k])
  27. arr[m++] = arr2[k++];
  28. else {
  29. arr[m++] = arr1[i++];
  30. arr[m++] = arr2[k++];
  31. }
  32. } while ( i < n && k < n);
  33. while ( i < n)
  34. arr[m++] = arr1[i++];
  35. while (k < n)
  36. arr[m++] = arr2[k++];
  37.  
  38. for (m = 0; m < 2*n; m++)
  39. {
  40. if( arr[m] <= N) //сравнение с введенным числом N
  41. {
  42. cout << arr[m] << " ";
  43. fprintf(f, " %d ", arr[m]); //запись результата в файл
  44. }
  45. }
  46.  
  47. delete[] arr;
  48. delete[] arr1;
  49. delete[] arr2;
  50.  
  51. return 0;
  52. }

+добавить реализацию