Алгоритмы
- 119 ответов
- 0 вопросов
100
Вклад в тег
На каждом отрезке от 10*n до 10*n+9 таких чисел ровно 5. Поэтому нам достаточно посчитать число таких полных отрезков, и обработать краевые отрезки. Пусть sumdig(n) - функуция, которая выдаёт остаток от деления суммы цифр n на 2. Тогда: int s0=(B/10-A/10-1)*5; int s1=(10+sumdig(A/10)-A%10)/2; int s2=(2+B%10-sumdig(B/10))/2; return s0+s1+s2;
return a==b ? (a==c ? d : c) : (a==c ? b : a);
int X[4];
return X[(X[0]==X[2])+2*(X[0]==X[1])];
int f(int p,int q,int r){
return p==r ? q : p;
}
int g(int a,int b,int c,int d){
return a==b ? f(c,d,a) : f(a,b,c);
}
int x=a^b,y=a^c;
x=(x|-x)>>31; y=(y|-y)>>31;
return ((a^b^c^d)&x&y)^((b^d)&x)^((c^d)&y)^d;