Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.c
- // 8
- //
- // Created by Алексей Трутнев on 03.12.2019.
- // Copyright © 2019 Алексей Трутнев. All rights reserved.
- //
- #include<stdio.h>
- #include<time.h>
- #include<stdlib.h>
- #define SIZE 5
- #define EXP
- int binarySearch(int arr[], int l, int r, int x)
- {
- if (r >= l)
- {
- int mid = l + (r - l)/2;
- if (arr[mid] == x) return mid;
- else if (arr[mid] > x) return binarySearch(arr, l, mid-1, x);
- else
- return binarySearch(arr, mid+1, r, x);
- }
- return -1;
- }
- void input (int *mass, int size) {
- srand(time(0));
- for (int i = 0; i < size; i++) {
- int c = 1;
- do
- {
- mass[i] = rand()%10;
- c = 0;
- for (int j = 0; j < i; j++)
- {
- if(mass[j] == mass[i])
- c++;
- }
- } while (c != 0);
- }
- printf("\n");
- }
- void print(int *mass, int size) {
- for (int i = 0; i < size; i++)
- printf("%d\t", mass[i]);
- printf("\n");
- }
- void bubbleSort(int *mass, int size){
- int swap = 0;
- for(int i = 0 ; i < size - 1; i++){
- for(int j = 0 ; j < size-i-1; j++){
- if(mass[j] > mass[j+1]) {
- swap=mass[j];
- mass[j]=mass[j+1];
- mass[j+1]=swap;
- }
- }
- }
- }
- int mult(int *arr, int res, int n) {
- if(n == 0){
- return res;
- } else return -1;
- if(*arr < 0){
- res *= *arr;
- } else return -1;
- mult(arr+1, res, n - 1);
- }
- int isPrime(int n, int m) {
- if(m == n){
- return 1;
- } else return -1;
- if(n % m == 0){
- return 0;
- } else return -1;
- isPrime(n, m+1);
- }
- int isPerfect(int n, int k) {
- if(2*k > n)return 0;
- if(n%k==0) return k+isPerfect(n, k+1);
- else return isPerfect(n, k+1);
- }
- //-----------------------------------//
- //-------------Task 5----------------//
- //-----------------------------------//
- int hanoy(int n, int i, unsigned long long k, int j){
- static unsigned long long k1 = 0;
- if(n>0){
- k++;
- hanoy(n-1,i,j,k1);
- printf("move disk %d %d--->%d\n",n,i,j);
- hanoy(n-1,k,i,j);
- }
- else return k1;
- }
- #ifdef Task1
- int main()
- {
- int size, mass[100],x;
- printf("введите размер\n");
- scanf("%d",&size);
- input(mass, size);
- print(mass,size);
- bubbleSort(mass,size);
- print(mass,size);
- scanf("%d", &x);
- int result = binarySearch(mass, 0, size-1, x);
- (result == -1)? printf("Element is not present in mass\n")
- : printf("Element is present at index %d\n", result);
- return 0;
- }
- #endif
- #ifdef Task2
- int main(int argc, char const *argv[])
- {
- srand(time(0));
- int arr[SIZE] = {0};
- for (int i = 0; i < SIZE; i++)
- {
- arr[i] = rand() % 20 - 10;
- printf("%d\t", arr[i]);
- }
- printf("\nRes: %d\n", mult(arr, 1, SIZE));
- return 0;
- }
- #endif
- #ifdef Task3
- int main(int argc, char const *argv[])
- {
- srand(time(0));
- int n = rand() % 98 + 2;
- printf("%d\n", n);
- printf("Res: %s\n", (isPrime(n, 2))? "yes": "no");
- return 0;
- }
- #endif
- #ifdef Task4
- int main(int argc, char const *argv[])
- {
- srand(time(0));
- int n = 0, k = 0;
- scanf("%d", &n);
- printf("%d\n", n);
- k = isPerfect(n, 1);
- if (n == k) printf("yes\n");
- else printf("no\n");
- if (n == 1) printf("yes\n");
- return 0;
- }
- #endif
- #ifdef Task5
- int main(int argc, char const *argv[])
- {
- const maxTover = 8;
- int tover1[8] = {0} ;
- int tover2[8] = {0};
- int tover3[8] = {8,7,6,5,4,3,2,1}; //we will replace from tover3 to tover1 низ слева
- moveRIng(tover3, tover2, tover1, 7, 0, 0);
- /*
- printf("\nTover 1:\t");
- for(int i = 0; i < maxTover; i++){
- printf("%d\t", tover1[i]);
- }
- printf("\n");
- printf("Tover 2:\t");
- for(int i = 0; i < maxTover; i++){
- printf("%d\t", tover2[i]);
- }
- printf("\n");
- printf("Tover 3:\t");
- for(int i = 0; i < maxTover; i++){
- printf("%d\t", tover3[i]);
- }
- printf("\n");
- */
- return 0;
- }
- #endif
- #ifdef EXP
- //algoritm
- int main(){
- int discs = 0;
- unsigned long long k = 0;
- printf(" Введите количество дисков\n");
- scanf("%d", &discs);
- k = hanoy(discs, 1, 2, 3);
- printf("\n минимальное количество перемещений = %llu \t", k);
- return 0;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement