Exponential Backoff Delays

Easy Real-World Scenarios
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;
}