#include using namespace std; //сума цифри в десетичния запис на чсилото x int sumdigits_iter (int x) { int sum = 0; while (x > 0) { sum += x % 10; x /= 10; } return sum; } //брой цифри в k-тичния запис на чсилото x int ndigits (int x, int k) { if (x < k) return 1; //else return ndigits (x/k,k) + 1; } //брой цифри в десетичния запис на чсилото x int ndigits (int x) { if (x < 10) return 1; //else return ndigits (x/10) + 1; } //сума цифри в десетичния запис на чсилото x int sumdigits (int x) { if (x < 10) return x; return sumdigits (x/10) + x%10; } //дали числото x съдържа цифрата y в k-тичния си запис bool hasdigit (int x, int y, int k) { if (x < k) { return x == y; /*if (x == y) return true; //else return false;*/ } return hasdigit (x/k, y, k) || x % k == y; /* if (hasdigit (x/k, y, k)) { return true; } //else return x % k == y; return true; return false; */ } bool hasdigit2 (int x, int y, int k) { return (x < k && x == y) || (x >= k && (hasdigit2 (x/k, y, k) || x % k == y)); } //колко пъти числото x съдържа цифрата y в k-тичния си запис int countdigit (int x, int y, int k) { if (x < k) { if (x == y) return 1; return 0; //<==> return x == y; } //<==> return countdigit (x/k, y, k) + x % k == y; if (x % k == y) return countdigit (x/k,y,k) + 1; //else return countdigit (x/k,y,k); //+0 } //брои срещанията на числото x в масива a int count (int a[], int n, int x) { if (n == 0) return 0; if (a[0] == x) return count (a+1,n-1,x) + 1; //else return count (a+1,n-1,x); //return count (a+1,n-1,x) + (a[0] == x); } //каква непрекъсната част от началото на //масива се състои от еднакви числа int flat (int a[], int n) { if (n < 2) return n; if (a[0] == a[1]) return flat (a+1,n-1) + 1; //else return 1; } //дали последователните елементи на масива //са подредени в ненамаляващ ред bool issorted (int a[], int n) { if (n < 2) return true; return a[0] <= a[1] && issorted (a+1,n-1); } bool f (int x) { //cout << x << endl; /* if (x == 0) return false; */ return (x > 0) && f(x - 1); //return f(x - 1) && (x > 0); } //дължина на максималния общ префикс на два масива int prefix (int a[], int na, int b[], int nb) { if (na == 0 || nb == 0) return 0; if (a[0] != b[0]) return 0; return prefix (a+1,na-1,b+1,nb-1) + 1; } int main () { int a[] = {1,2,1,2,1}; //cout << true && false && (1/0 > 2); cout << f(1) << endl; return 0; }