JirR02 39ac03251c Converted everything to orgmode
converted everything to orgmode and added solution to the README files
2025-03-30 23:11:16 +02:00
..
2025-03-30 23:11:16 +02:00

Task 4: Binary Expansion

Task

Write a program that performs the binary expansion for a given decimal input number \(x\), where \(0 \leq x < 2\). Use the algorithm presented in the lecture. The program must output the first \(16\) digits of the number in the format: \(b_0, b_1, b_2, ... , b_15\).

Important Always print all \(16\) digits, even the trailing zeros. Do not normalize or round the number.

You can structure your program into functions to avoid code repetition. Do not forget to annotate functions with pre- and post conditions.

Solution

#include <iostream>

int main() {

  float i;
  int n;
  float d;

  std::cin >> i;

  if (i < 0 || i > 2)
    return 0;
  else {
    n = i;
    d = i - n;

    std::cout << n << ".";

    n = d;
    d = 2 * (d - n);

    for (int j = 1; j <= 15; ++j) {
      n = d;
      d = 2 * (d - n);
      std::cout << n;
    }
  }
}

Made by JirR02 in Switzerland 🇨🇭