Exponential Backoff Delays
Compute the retry delays for exponential backoff (base * 2^attempt) — the pattern used to retry failed network requests.
Sample input
base = 100, retries = 5
Sample output
100 200 400 800 1600
Solution
base = 100
retries = 5
delays = [base * (2 ** i) for i in range(retries)]
print(*delays)
const base = 100, retries = 5;
const delays = [];
for (let i = 0; i < retries; i++) {
delays.push(base * Math.pow(2, i));
}
console.log(delays.join(" "));
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int base = 100, retries = 5;
System.out.println(IntStream.range(0, retries)
.map(i -> base * (1 << i)).mapToObj(String::valueOf).collect(Collectors.joining(" ")));
}
}
fun main() {
val base = 100
val retries = 5
val delays = (0 until retries).map { base * (1 shl it) }
println(delays.joinToString(" "))
}
let base = 100, retries = 5
let delays = (0..<retries).map { base * (1 << $0) }
print(delays.map(String.init).joined(separator: " "))
void main() {
const base = 100, retries = 5;
final delays = List.generate(retries, (i) => base * (1 << i));
print(delays.join(' '));
}
#include <iostream>
using namespace std;
int main() {
int base = 100, retries = 5;
for (int i = 0; i < retries; i++) {
if (i > 0) cout << " ";
cout << (base * (1 << i));
}
cout << endl;
return 0;
}
#include <stdio.h>
int main() {
int base = 100, retries = 5;
for (int i = 0; i < retries; i++) {
if (i > 0) printf(" ");
printf("%d", base * (1 << i));
}
printf("\n");
return 0;
}