C - zadania z ciągami w funkcji

0

Witam.
Mam do zrobienia takie zadania:

  1. Napisz funkcję, który dla wartości k podanej z klawiatury (całkowitej) wyznaczy i zwróci sumę liczb naturalnych danych ciągiem {0, 1,2³, ..., k³}.
  1. Napisz funkcję wypisującą elementy szeregu matematycznego, dla n podanego z klawiatury będącego parametrem wywołania funkcji. Funkcja ma obliczać i zwracać sumę szeregu.
    Wzór ogólny szeregu:
    screenshot-20191210173056.png

Nie mam kompletnie pojęcia jak się za to zabrać. Największy problem sprawa mi zapisanie obliczeń dla tych funkcji. Proszę o pomoc i wytłumaczenie.
Pozdrawiam.

0

A co już próbowałeś? Do potęgowania użyj pow z math.h, reszta to zwykłe użycie pętli.

0

Program pyta o k, a później już się nie wykonuje. Gdzie mam błąd?

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int potega(x)
{
    int wynik=1;
    int a=0, b=1, c=2, i, p, pot;
    for(i=0; i<p; i++)
    {
        pot=pow(0,3) + pow(1,3) + pow(2,3) + pow(x,3);
    }
    return pot;
}

int main()
{
    int k, x, suma=1;
    printf("Podaj k: ");
    scanf("%d", &k);
    suma=potega(x);
    printf("Suma liczb naturalnych wynosi:", suma);
    return 0;
}

0

Słyszałeś o iteracji?

int sumOfPowersThree(int n) {
	int s = 0;
	for (int i = 0; i <= n; ++i){
		s += pow(i, 3);
	}
	return s;
}

Drugie tak samo, tylko trzeba wstawić ten trochę bardziej skomplikowany wzór, zwraca floati acha, nie Zapomnij dać (bo n będzie intem) (1.0F/n) * itd...

0

@lion137 doprawdy na każdym kroku pow() ?
jeżeli znasz wartość a^3 to nie jesteś w stanie wyznaczyć (a+1)^3 ?

0

@lion137: słyszałeś o wzorach zwartych?
1)

unsigned sum_of_cubes(unsigned k) {
    return k*(k + 1)*((k + 2)*(k - 1) + 2)/4;
} 
  1. nieco uproszczona wersja, nie wypisuje elementów, tylko zwraca sumę szeregu:
#include <math.h>
double sum_of_series() {
    return M_LN2;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1