Hallo Liebes Forum!
Ich brauche dringend hilfe^^ xD mal wieder :<
also..
Ich hab einen Algorithmus gefunden um Pi auf die Nte Stelle auszurechnen wie schon in diesem Thread gesagt..
Das Ergebnis jeder Nten Stelle wird im Hexadezimal angegeben, also Basis 16.
Der Algorithmus ist die BBP Reihe; Umgestellt.
Hab dies hier her.
Ich habe mich mal dran Probiert dies zu Programmieren allerdings bekomm ich nicht das richtige Ergebnis(kann man sich denken xD).
Ich kommentier leider nicht also bitte nicht meckern deswegen^^
btw bin C++ boon also anfänger
Mein Code bis Jetzt:
Alles anzeigen
Findet ihr meinen Fehler / meine Fehler?
DANKE FÜR EURE HILFE!
Ich brauche dringend hilfe^^ xD mal wieder :<
also..
Ich hab einen Algorithmus gefunden um Pi auf die Nte Stelle auszurechnen wie schon in diesem Thread gesagt..
Das Ergebnis jeder Nten Stelle wird im Hexadezimal angegeben, also Basis 16.
Der Algorithmus ist die BBP Reihe; Umgestellt.
Hab dies hier her.
Ich habe mich mal dran Probiert dies zu Programmieren allerdings bekomm ich nicht das richtige Ergebnis(kann man sich denken xD).
Ich kommentier leider nicht also bitte nicht meckern deswegen^^
btw bin C++ boon also anfänger

Mein Code bis Jetzt:
Quellcode
- #include <iostream>
- #include <string>
- #include <conio.h>
- #include <cmath>
- using namespace std;
- #define Unendlich 999999
- double D_Mod(double a, double b)
- {
- int result = static_cast<int>( a / b);
- return a - static_cast<double>(result) * b;
- }
- int main()
- {
- //Variablen deklaration
- int Anzahl = 0;
- string Pi = "3.";
- char Addieren = 'z';
- double Summe1 = 0, Summe2 = 0, Summe3 = 0, Summe4 = 0;
- double dZahl1, dZahl2, k1, n1, Zwischensumme;
- int temp, iErgebnis;
- cout << "Wie viele Stellen sollen Berechnet werden?" << endl;
- cin >> Anzahl;
- for(int n=0;n<Anzahl;n++)
- {
- Summe1 = 0;
- Summe2 = 0;
- Summe3 = 0;
- Summe4 = 0;
- dZahl1 = 0;
- dZahl2 = 0;
- Zwischensumme = 0;
- temp = 0;
- iErgebnis = 0;
- //Summe1
- for(int k=0;k<n;k++)
- {
- k1 = k;
- n1 = n;
- temp = pow(16,n1-k1);
- dZahl1 = temp % (8*k+1);
- dZahl2 = 8*k+1;
- Summe1 += dZahl1 / dZahl2;
- }
- for(int k=n+1;k<Unendlich;k++)
- {
- k1 = k;
- n1 = n;
- dZahl1 = pow(16,n1-k1);
- dZahl2 = 8*k+1;
- Summe1 += dZahl1 / dZahl2;
- }
- Summe1 *= 4;
- //Summe2
- for(int k=0;k<n;k++)
- {
- k1 = k;
- n1 = n;
- temp = pow(16,n1-k1);
- dZahl1 = temp % (8*k+4);
- dZahl2 = 8*k+4;
- Summe2 += dZahl1 / dZahl2;
- }
- for(int k=n+1;k<Unendlich;k++)
- {
- k1 = k;
- n1 = n;
- dZahl1 = pow(16,n1-k1);
- dZahl2 = 8*k+4;
- Summe2 += dZahl1 / dZahl2;
- }
- Summe2 *= 2;
- //Summe3
- for(int k=0;k<n;k++)
- {
- k1 = k;
- n1 = n;
- temp = pow(16,n1-k1);
- dZahl1 = temp % (8*k+5);
- dZahl2 = 8*k+5;
- Summe3 += dZahl1 / dZahl2;
- }
- for(int k=n+1;k<Unendlich;k++)
- {
- k1 = k;
- n1 = n;
- dZahl1 = pow(16,n1-k1);
- dZahl2 = 8*k+5;
- Summe3 += dZahl1 / dZahl2;
- }
- //Summe4
- for(int k=0;k<n;k++)
- {
- k1 = k;
- n1 = n;
- temp = pow(16,n1-k1);
- dZahl1 = temp % (8*k+6);
- dZahl2 = 8*k+6;
- Summe4 += dZahl1 / dZahl2;
- }
- for(int k=n+1;k<Unendlich;k++)
- {
- k1 = k;
- n1 = n;
- dZahl1 = pow(16,n1-k1);
- dZahl2 = 8*k+6;
- Summe4 += dZahl1 / dZahl2;
- }
- //Berechnung
- Zwischensumme = Summe1 - Summe2 - Summe3 - Summe4;
- Zwischensumme = D_Mod(Zwischensumme,1);
- Zwischensumme *= 16;
- iErgebnis = Zwischensumme;
- switch(iErgebnis)
- {
- case 0:
- Addieren = '0';
- break;
- case 1:
- Addieren = '1';
- break;
- case 2:
- Addieren = '2';
- break;
- case 3:
- Addieren = '3';
- break;
- case 4:
- Addieren = '4';
- break;
- case 5:
- Addieren = '5';
- break;
- case 6:
- Addieren = '6';
- break;
- case 7:
- Addieren = '7';
- break;
- case 8:
- Addieren = '8';
- break;
- case 9:
- Addieren = '9';
- break;
- case 10:
- Addieren = 'A';
- break;
- case 11:
- Addieren = 'B';
- break;
- case 12:
- Addieren = 'C';
- break;
- case 13:
- Addieren = 'D';
- break;
- case 14:
- Addieren = 'E';
- break;
- case 15:
- Addieren = 'F';
- break;
- }
- Pi += Addieren;
- }
- cout << endl;
- cout << Pi;
- _getch();
- return 0;
- }
Findet ihr meinen Fehler / meine Fehler?
DANKE FÜR EURE HILFE!
