Dateien nach „BSP_1_C“ hochladen
This commit is contained in:
parent
9800c3596d
commit
4c4507811c
4 changed files with 169 additions and 0 deletions
48
BSP_1_C/bsp_1_c.cpp
Normal file
48
BSP_1_C/bsp_1_c.cpp
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#include "bsp_1_c.h"
|
||||
|
||||
long long int fkt1(const long long int n)
|
||||
{
|
||||
long long int sum1, sum2, sum3, sum;
|
||||
|
||||
sum1 = 0;
|
||||
for (long long int k = 3; k<= n; k = k+3) // Summation der Vielfachen von 3, die kleinergleich n sind
|
||||
{
|
||||
sum1 = sum1 + k;
|
||||
}
|
||||
|
||||
sum2 = 0;
|
||||
for (long long int k = 5; k<= n; k = k+5) // Summation der Vielfachen von 5, die kleinergleich n sind
|
||||
{
|
||||
sum2 = sum2 + k;
|
||||
}
|
||||
|
||||
sum3 = 0;
|
||||
for (long long int k = 15; k<= n; k = k + 3*5) // Summation der Vielfachen von 15, die kleinergleich n sind
|
||||
{
|
||||
sum3 = sum3 + k;
|
||||
}
|
||||
|
||||
// addieren die Vielfachen von 3 und 5, müssen die Vielfachen von 15 aber abziehen, da diese
|
||||
// sowohl bei sum1 als auch sum2 mitgezählt wurden (doppelt gezählt)
|
||||
sum = sum1 + sum2 - sum3;
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
|
||||
// berechnet die gesuchte Summe ausschließlich nach einer Formel / ohne loops
|
||||
long long int fkt2(const long long int n)
|
||||
{
|
||||
// Berechnung via Formel
|
||||
// schreibt Summe der durch 3 teilbaren Zahlen an, hebt 3 heraus und braucht dann nur mehr
|
||||
// die Summe von 1 bis n/3 abgerundet zu addieren; hierfür verwende die Gauß´sche Summenformel
|
||||
// und integer Division; analog für 5 und 15
|
||||
long long int sum1, sum2, sum3, sum;
|
||||
sum1 = 3*(n/3)*(n/3+1)/2;
|
||||
sum2 = 5*(n/5)*(n/5+1)/2;
|
||||
sum3 = 15*(n/15)*(n/15+1)/2;
|
||||
|
||||
sum = sum1 + sum2 - sum3;
|
||||
|
||||
return sum;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue