Cloud computing is widely being adopted by many companies because it allows to maximize the utilization of resources. However, the complexity of cloud computing systems with the existence of many cloud providers makes infeasible for the end user the optimal or near-optimal resource provisioning and utilization, especially in presence of uncertainty of very dynamic and unpredictable environment. Hence, adaptive load balancing algorithms are a fundamental part of the research in cloud computing. We formulate the problem and propose an adaptive load balancing algorithm for distributed computer environments. We also discuss the energy efficiency of our solution for the domain of VoIP computations on federated clouds.