Как мне избавиться от этих 0 после десятичного числа? - PullRequest
0 голосов
/ 01 апреля 2020

Мой вывод должен выглядеть так:

 n     Recursive   time_r(s)      Iterative   time_i(s)
   1             1    0.000000              1    0.000000
   2             1    0.000000              1    0.000000
   3             2    0.000000              2    0.000000
   4             3    0.000000              3    0.000001
. . .
  43     433494437    2.015535      433494437    0.000002
  44     701408733    3.270357      701408733    0.000002
  45    1134903170    5.258732     1134903170    0.000002

Но вместо этого я получаю следующее:

   1        1.0000    0.000000        1.0000    0.000000
   2        1.0000    0.000000        1.0000    0.000000
   3        2.0000    0.000000        2.0000    0.000000
   4        3.0000    0.000000        3.0000    0.000001
. . .
  43433494437.0000    2.015535433494437.0000    0.000002
  44701408733.0000    3.270357701408733.0000    0.000002
  451134903170.0000   5.2587321134903170.0000    0.000002

Вот как выглядит мой код, я изначально получил его работают отлично, но потом мне сказали вернуть std :: pair, поэтому я изменил код, а затем изменился вывод. Я попробовал std :: noshowpoint прямо перед кодом, который не нуждается в нулях, но без сигары.

    std::cout << std::fixed;

    std::cout << "\nFibonacci Output" << std::endl;

    std::cout << std::setw(4) << "n" 
            << std::setw(15) << "Recursive" 
            << std::setw(12) << "time_r(s)" 
            << std::setw(16) 
            << std::setw(15) << "Iterative" 
            << std::setw(12) << "time_i(s)" << std::endl;

    for (int i{ 1 }; i < 44; ++i) {
        std::cout << std::setw(4) << i;
        std::cout << std::setw(15) << time_r(i).first;
        std::cout << std::setw(12) << time_r(i).second;
        std::cout << std::setw(16) << std::setw(15) << time_i(i).first;
        std::cout << std::setw(12) << time_i(i).second << std::endl;
    } 
...