История изменений
Исправление 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));
});
}
Вывод здесь абсолютно такой же