Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.56 KB | None | 0 0
  1. //
  2. //  main.c
  3. //  8
  4. //
  5. //  Created by Алексей Трутнев on 03.12.2019.
  6. //  Copyright © 2019 Алексей Трутнев. All rights reserved.
  7. //
  8.  
  9. #include<stdio.h>
  10. #include<time.h>
  11. #include<stdlib.h>
  12.  
  13. #define SIZE 5
  14.  
  15. #define EXP
  16.  
  17. int binarySearch(int arr[], int l, int r, int x)
  18. {
  19.    if (r >= l)
  20.    {
  21.         int mid = l + (r - l)/2;
  22.         if (arr[mid] == x) return mid;
  23.         else if (arr[mid] > x) return binarySearch(arr, l, mid-1, x);
  24.         else
  25.         return binarySearch(arr, mid+1, r, x);
  26.    }
  27.    return -1;
  28. }
  29.  
  30. void input (int *mass, int size) {
  31.     srand(time(0));
  32.     for (int i = 0; i < size; i++) {
  33.         int c = 1;
  34.         do
  35.         {
  36.             mass[i] = rand()%10;
  37.             c = 0;
  38.             for (int j = 0; j < i; j++)
  39.             {
  40.                 if(mass[j] == mass[i])
  41.                     c++;
  42.             }
  43.         } while (c != 0);
  44.     }
  45.        
  46.     printf("\n");
  47. }
  48.  
  49. void print(int *mass, int size) {
  50.     for (int i = 0; i < size; i++)
  51.         printf("%d\t", mass[i]);
  52.     printf("\n");
  53. }
  54.  
  55. void bubbleSort(int *mass, int size){
  56.     int swap = 0;
  57.     for(int i = 0 ; i < size - 1; i++){
  58.         for(int j = 0 ; j < size-i-1; j++){
  59.             if(mass[j] > mass[j+1]) {
  60.                 swap=mass[j];
  61.                 mass[j]=mass[j+1];
  62.                 mass[j+1]=swap;
  63.             }
  64.         }
  65.     }
  66. }
  67.  
  68. int mult(int *arr, int res, int n) {
  69.     if(n == 0){
  70.         return res;
  71.     } else return -1;
  72.     if(*arr < 0){
  73.         res *= *arr;
  74.     } else return -1;
  75.     mult(arr+1, res, n - 1);
  76. }
  77.  
  78. int isPrime(int n, int m) {
  79.     if(m == n){
  80.         return 1;
  81.     } else return -1;
  82.     if(n % m == 0){
  83.                 return 0;
  84.     } else return -1;
  85.     isPrime(n, m+1);
  86. }
  87.  
  88.  
  89. int isPerfect(int n, int k) {
  90.     if(2*k > n)return 0;
  91.     if(n%k==0) return k+isPerfect(n, k+1);
  92.     else return isPerfect(n, k+1);
  93. }
  94.  
  95.  
  96. //-----------------------------------//
  97. //-------------Task 5----------------//
  98. //-----------------------------------//
  99.  
  100. int hanoy(int n, int i, unsigned long long k, int j){
  101.     static unsigned long long k1 = 0;
  102.     if(n>0){
  103.       k++;
  104.     hanoy(n-1,i,j,k1);
  105.     printf("move disk %d  %d--->%d\n",n,i,j);
  106.     hanoy(n-1,k,i,j);
  107.     }
  108.     else return k1;
  109. }
  110.  
  111. #ifdef Task1
  112. int main()
  113. {
  114.     int size, mass[100],x;
  115.     printf("введите размер\n");
  116.     scanf("%d",&size);
  117.     input(mass, size);
  118.     print(mass,size);
  119.     bubbleSort(mass,size);
  120.     print(mass,size);
  121.     scanf("%d", &x);
  122.     int result = binarySearch(mass, 0, size-1, x);
  123.     (result == -1)? printf("Element is not present in mass\n")
  124.                  : printf("Element is present at index %d\n", result);
  125.     return 0;
  126. }
  127. #endif
  128.  
  129. #ifdef Task2
  130. int main(int argc, char const *argv[])
  131. {
  132.     srand(time(0));
  133.     int arr[SIZE] = {0};
  134.     for (int i = 0; i < SIZE; i++)
  135.     {
  136.         arr[i] = rand() % 20 - 10;
  137.         printf("%d\t", arr[i]);
  138.     }
  139.     printf("\nRes: %d\n", mult(arr, 1, SIZE));
  140.     return 0;
  141. }
  142. #endif
  143.  
  144. #ifdef Task3
  145.  
  146. int main(int argc, char const *argv[])
  147. {
  148.     srand(time(0));
  149.     int n = rand() % 98 + 2;
  150.     printf("%d\n", n);
  151.     printf("Res: %s\n", (isPrime(n, 2))? "yes": "no");
  152.     return 0;
  153. }
  154. #endif
  155.  
  156. #ifdef Task4
  157.  
  158. int main(int argc, char const *argv[])
  159. {
  160.     srand(time(0));
  161.     int n = 0, k = 0;
  162.     scanf("%d", &n);
  163.     printf("%d\n", n);
  164.     k = isPerfect(n, 1);
  165.     if (n == k) printf("yes\n");
  166.     else printf("no\n");
  167.     if (n == 1) printf("yes\n");
  168.     return 0;
  169. }
  170. #endif
  171.  
  172. #ifdef Task5
  173.  
  174. int main(int argc, char const *argv[])
  175. {
  176.     const maxTover = 8;
  177.     int tover1[8] = {0} ;
  178.     int tover2[8] = {0};
  179.     int tover3[8] = {8,7,6,5,4,3,2,1}; //we will replace from tover3 to tover1 низ слева
  180.    
  181.     moveRIng(tover3, tover2, tover1, 7, 0, 0);
  182.    
  183.     /*
  184.     printf("\nTover 1:\t");
  185.     for(int i = 0; i < maxTover; i++){
  186.         printf("%d\t", tover1[i]);
  187.     }
  188.     printf("\n");
  189.     printf("Tover 2:\t");
  190.     for(int i = 0; i < maxTover; i++){
  191.         printf("%d\t", tover2[i]);
  192.     }
  193.      printf("\n");
  194.     printf("Tover 3:\t");
  195.     for(int i = 0; i < maxTover; i++){
  196.         printf("%d\t", tover3[i]);
  197.     }
  198.     printf("\n");
  199.      */
  200.     return 0;
  201. }
  202. #endif
  203.  
  204. #ifdef EXP
  205. //algoritm
  206. int main(){
  207.     int discs = 0;
  208.     unsigned long long k = 0;
  209.     printf(" Введите количество дисков\n");
  210.     scanf("%d", &discs);
  211.     k = hanoy(discs, 1, 2, 3);
  212.     printf("\n минимальное количество перемещений =  %llu \t", k);
  213.     return 0;
  214. }
  215. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement