forked from 131/lab3_test
Implement fibonacci, sum_is_odd, and bit_count functions with tests in aux branch
This commit is contained in:
38
aux_lib.c
38
aux_lib.c
@@ -1,22 +1,38 @@
|
||||
#include "aux_lib.h"
|
||||
#include <stdbool.h>
|
||||
|
||||
/*
|
||||
* Функция возвращает n-ный элемент последовательности фибоначи
|
||||
*/
|
||||
int
|
||||
fibonacci(int nitem)
|
||||
{
|
||||
//YOUR_CODE
|
||||
return 42;
|
||||
if (nitem <= 1) {
|
||||
return nitem;
|
||||
}
|
||||
int a = 0, b = 1, next;
|
||||
for (int i = 2; i <= nitem; ++i) {
|
||||
next = a + b;
|
||||
a = b;
|
||||
b = next;
|
||||
}
|
||||
return b;
|
||||
}
|
||||
|
||||
/*
|
||||
* Функция считает сумму элементов массива и возвращает информацию
|
||||
* является ли эта сумма нечётным числом.
|
||||
*/
|
||||
bool
|
||||
sum_is_odd(int *arr, int arrsz)
|
||||
{
|
||||
//YOUR_CODE
|
||||
return false;
|
||||
long long sum = 0;
|
||||
for (int i = 0; i < arrsz; i++) {
|
||||
sum += arr[i];
|
||||
}
|
||||
return sum % 2 != 0;
|
||||
}
|
||||
|
||||
int bit_count(unsigned int number) {
|
||||
int count = 0;
|
||||
while (number > 0) {
|
||||
if (number % 2 == 1) {
|
||||
count++;
|
||||
}
|
||||
number = number / 2;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user