LINUX.ORG.RU

История изменений

Исправление Rot1, (текущая версия) :

именно Си

В C не канон объявлять функции без указания типа параметра, как в вашем коде.

Вообще, мне кажется, что в таком виде он становится понятней:

int main(void)
{
    int d = 1, s = 0;
    for (size_t i = 0; i < 10; i++) {
        d += 6 * i; 
        s += d;
        printf("%i %f\n", s, pow(s, 1.0 / 3));
    }
}

И то, что вы написали - это никакая не прогрессия, а обыкновенный ряд с интересным свойсвом своих членов, как вы заметили. Вот то же, что вы написали, только на понятном диалекте:

#include <iostream>
#include <array>
#include <iterator>
#include <algorithm>
#include <numeric>
#include <string>

int main()
{
    const int n = 10;

    std::array<int, n> elements {1};
    for (size_t i = 1; i < elements.size(); ++i)
        elements[i] = elements[i-1] + 6 * i; // общий член ряда, выраженный рекурентно

    std::array<int, n> series;
    std::partial_sum(begin(elements), end(elements), begin(series)); // заполнение членами ряда

    transform(begin(series), end(series), std::ostream_iterator<std::string> {std::cout, "\n"},
            [] (auto element) {
        // вывод члена ряда и его кубического корня
        return std::to_string(element) + " - " + std::to_string(std::pow(element, 1.0 / 3));
    });
}

Вывод здесь абсолютно такой же

Исходная версия Rot1, :

именно Си

В C не канон объявлять функции без указания типа параметра, как в вашем коде.

Вообще, мне кажется, что в таком виде он становится понятней:

int main(void)
{
    int d = 1, s = 0;
    for (size_t i = 0; i < 10; i++) {
        d += 6 * i; 
        s += d;
        printf("%i %f\n", s, pow(s, 1.0 / 3));
    }
}

И то, что вы написали - это никакая не прогрессия, а обыкновенный ряд с интересным свойсвом своих членов, как вы заметили. Вот то же, что вы написали, только на понятном диалекте:

#include <iostream>
#include <array>
#include <iterator>
#include <algorithm>
#include <numeric>
#include <string>

int main()
{
    const int n = 10;

    std::array<int, n> elements {1};
    for (size_t i = 1; i < elements.size(); ++i)
        elements[i] = elements[i-1] + 6 * i; // общий член ряда, выраженный рекурентно

    std::array<int, n> series;
    std::partial_sum(begin(elements), end(elements), begin(series)); // заполнение членами ряда

    transform(begin(series), end(series), std::ostream_iterator<std::string> {std::cout, "\n"},
            [] (auto element) {
        // вывод члена ряда и его кубического корня
        return std::to_string(element) + " - " + std::to_string(std::pow(element, 1.0 / 3));
    });
}


Вывод здесь абсолютно такой же