Posts

Showing posts from February, 2019

Timus 1209. 1, 10, 100, 1000... accepted solution in C

#include <stdio.h> int binary_search(int ara[], int n, int ara_size) {     int min, max, mid;     min = 0;     max = ara_size - 1;     while(min <= max)     {         mid = min + (max - min) / 2;         if(ara[mid] == n) {             return 1;         } else if(ara[mid] < n) {             min = mid + 1;         } else {             max = mid - 1;         }     }     return 0; } int main() {     int N, K, i;     int ones_indexes[65536]; // there will be total 65536 ones in the 110100100010001... sequence for 1 to 2^31 - 1 index     unsigned int ones_index;     for(ones_index = 1, i = 0; ones_index <= 2147483647; i++, ones_index += i)     {         ones_indexes[i] = ones_index;     }     scanf("%d", &N);     for(i = 0; i < N; i++)     {         scanf("%d", &K);         printf("%d\n", binary_search(ones_indexes, K, 65536));     }     return 0; }

That happens when an associative array contains a value without key in PHP

<?php $assonum = ['key1' => 'a', 'b', 'key2' => 'c', 'd']; echo $assonum['key1']; // outputs a echo $assonum['key2']; // outputs c echo $assonum[0]; // outputs b echo $assonum[1]; // outputs d ?>

Reason of ampersand (&) sign before a variable name in PHP

<?php     $number = 1;     $pointer = &$number;         echo $number."<br/>"; // outputs 1     echo $pointer."<br/>"; // outputs 1         $pointer = 2;         echo $number."<br/>"; // outputs 2     echo $pointer."<br/>"; // outputs 2 ?>

Timus 1083. Factorials!!! Accepted Solution in C

#include <stdio.h> int main() {     int i, n, k, sum;     char input[24];     gets(input);     if(input[1] == ' ') {         n = input[0] - '0';         i = 2;     } else {         n = 10;         i = 3;     }     k = i;        while(input[i]) i++;     k = i - k;     sum = 1;     for(i = n; i > 0; i -= k) sum *= i;     printf("%d", sum);     return 0; }

How memset Function of C Works

void memset(void *first_byte_address, int value, int size) {     int i;     char *cp = (char *)first_byte_address;     for(i = 0; i < size; i++)     {         *cp = value;         cp++;     } } // this is not the exact memset function of C, it is just a guess of this blog author

Timus Problem 1086. Cryptography Accepted Solution in C

#include <stdio.h> #include <math.h> #include <stdlib.h> int main() {     int i, j, k, n, count, square_root, current_number;     char is_prime[163842];     int prime_numbers[15001];     square_root = (int)sqrt(163841); // 163841 is the 1500th prime number     for(i = 2; i <= 163841; i++) is_prime[i] = '1';     for(i = 2; i <= square_root; i++)     {         if(is_prime[i] == '1')         {             current_number = i * i;             while(current_number <= 163841)             {                 is_prime[current_number] = '0';                 current_number += i;             }         }     }     prime_numbers[1] = 2;     for(j = 2, i = 3; i <= 163841; i += 2)     {         if(is_prime[i] == '1')         {             prime_numbers[j] = i;             j++;         }     }     scanf("%d", &k);     while(k--)     {         scanf("%d", &n);         prin

Sieve of Eratosthenes in C

// outputs prime numbers from 0 to 100 #include <stdio.h> #include <math.h> int main() {     int i, square_root, current_number;     char is_prime[101]; // this array will have '1' for prime indexs and '0' for non-prime indexes     is_prime[0] = '0';     is_prime[1] = '0';     square_root = sqrt(100);     for(i = 2; i <= 100; i++) is_prime[i] = '1';     for(i = 2; i <= square_root; i++)     {         if(is_prime[i] == '1')         {             current_number = i * i;             while(current_number <= 100)             {                 is_prime[current_number] = '0';                 current_number += i;             }         }     }     for(i = 0; i <= 100; i++)     {         if(is_prime[i] == '1') printf("%d\n", i);     }     return 0; }

Hello World Program in C

#include <stdio.h> int main() {      printf("Hello World!");     return 0; }