Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 05.01.2003, 20:03 Titel: |
|
|
Is ja gut.
Solltest du doch net so ernst nehmen. |
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 05.01.2003, 20:28 Titel: |
|
|
also das da oben war leider nur dass mit den primzahlen. die quadratzahlen hab ich überlesen.
ich mach jetzt mal die rekursive methode:
Code: |
#include <iostream.h>
bool checkobpriemzahl(int zahl, int checkwith)
{
if(zahl%checkzahl==0 || zahl==1 || !checkobpriemzahl(zahl,checkzahl++))return false;
return true;
}
bool checkobquadratzahl(int zahl, int checkwith)
{
if((zahl == 1 || checkwith*checkwith == zahl || checkobquadratzahl(zahl,checkwith++)) && zahl >=0)return true;
return false;
}
void main()
{
int zahl;
cout<<"bitte geben sie eine Zahl ein:"<<endl;
cin>>zahl;
if(checkobpriemzahl(zahl,2))
{
cout<<"die zahl ist eine priemzahl"<<endl;
}
else
{
cout<<"die zahl ist keine priemzahl"<<endl;
};
if(checkobquadratzahl(zahl,2))
{
cout<<"die zahl ist eine quadratzahl"<<endl;
}
else
{
cout<<"die zahl ist keine quadratzahl"<<endl;
};
}; |
Zuletzt bearbeitet von gl_echse am 06.01.2003, 11:57, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
|
Jörg JLI MVP
Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 05.01.2003, 22:36 Titel: |
|
|
gl_echse hat Folgendes geschrieben: | Kampfhund hat Folgendes geschrieben: | int a = ++checkzahl;
heißt glaube ich soviel wie:
int a = checkzahl;
checkzahl++; |
*rofl*
das heißt soviel wie
int a = checkzahl + 1;
weil bei checkzahl++ die variable checkzahl um eins erhöht wird.
bei ++checkzahl wird nur checkzahl+1 ausgegeben. checkzahl bleibt hier gleich. |
Da muss ich dir widersprechen, echse. Sowohl Postfix- als auch Präfix-++ inkrementieren die Variable. Der Unterschied ist, dass Präfix-++ den inkrementierten Wert zurückgibt und Postfix-++ den Wert, den die Variable vorm Inkrementieren hat.
Wenn es so wäre, wie du es beschrieben hast, dann wär der Präfix-Operator ja überflüssig. _________________ www.messiahzone.de.vu |
|
Nach oben |
|
|
Michael JLI'ler
Anmeldedatum: 20.07.2002 Beiträge: 173 Wohnort: Münster / NRW Medaillen: Keine
|
Verfasst am: 06.01.2003, 09:01 Titel: |
|
|
ich würds beschleunigen und die zahl nur bis zu ihrer wurzel auf teiler überprüfen _________________ Es geht auch ohne |
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 06.01.2003, 11:56 Titel: |
|
|
@jörg:
Ich hab nix gesagt
@Michael:
Wäre auch denkbar, aber das wurzelziehen dauert meistenz länger, und der code wird größer. |
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 06.01.2003, 12:50 Titel: |
|
|
@michael:
das hat mich aber auf ne idee gebracht, warum so umständlich:
Code: |
bool checkobquadratzahl(int zahl)
{
if((float)(int)sqrt(zahl)-FLT_EPSILON == sqrt(zahl)-FLT_EPSILON)return true;
return false;
};
|
Der trick dabei ist dass die wurzel durch den intcast gerundet wird.wenn sie dennoch gleich dem floatwert ist, so ist die wurzel eine natürliche zahl.
Zuletzt bearbeitet von gl_echse am 06.01.2003, 17:55, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 06.01.2003, 13:12 Titel: |
|
|
Das wird nicht Funktionieren. Man kann float-Werte nicht mit '==' vergleichen... man muss einen bestimmten Toleranzwert setzen. Wenn ich nachher Zeit habe, suche ich mal raus wie das geht... hab ich hier irgendwo rumfliegen. :) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 06.01.2003, 13:19 Titel: |
|
|
####### das hab ich ganz vergessen
ich weiß schon wies geht musste net suchen.
bin nur gerade bisschen in stress |
|
Nach oben |
|
|
|