#include <iostream>
#include <utility>
int mean (int x, int y);
int main(){
for(int i = 0; i < 1000; i++){
int x = rand(), y = rand();
int result = mean(x, y);
int expected = (x + y) / 2;
std::cout << "mean(" << x << ", " << y << ") = " << result << " Expected = " << expected << std::endl;
if( result != expected){
std::cout << "error: x = " << x << " y = " << y << " result = " << mean(x,y) << std::endl;
}
}
system("pause");
}
int mean (int x, int y){
if(x > y){
std::swap(x, y);
}
int i = 0;
for(; x + i <= y - i; i++){
if(x + i == y - i){
return x + i;
}
}
// для нечетных сумм
return x + i - 1;
}
или так. забавная задачка =)
Последний раз редактировалось Ra$cal; 19.04.2010 в 02:20..