Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » fragen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
05.12.2006, 17:43 Uhr
~absoluter anfänger
Gast



Zitat:

1. ich möchte nämlich ein programm schreiben, das den kleinsten gemeinsamen teiler findet, also der soll die beiden zahlen erst durch 2 teilen, dann durch 3, dann durch 4... bis er eine natürliche zahl findet und kein dezimalbruch, und ich brauch halt für dieses "bis er eine natürliche zahl findet"


deshalbe hab ich mir gedacht das du z.b. den gemeinsamen teiler von
a=6
b=9

und deshalb wenn du
a:2=3
a%2=0 //man könnte auch Rest null sagen
und
b:2=4
b%2=1 //hier ist der Rest eins

weil 2 kein teiler von 9 ist weil ein rest bleibt wird so die 2 ausgeschlossen
alles verstanden oder bleibt noch was offen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
05.12.2006, 18:00 Uhr
Pler
Einer von Vielen
(Operator)


Falls du wirklich nach dem kleinsten gemeinsamen teiler suchst, kanns du sowas schreiben:

C++:
int kgt(void) {
  return 1;
}

Funkioniert sehr zuverlässig.

Wenn du jedoch nach dem größten gemeinsamen Teiler suchst, kannst du mal hier
www.ntecs.de/old-hp/s-direktnet/prog_bsp/data/c++/Ggt.cpp.html
schaun.
(google: C größter gemeinsamer Teiler -> 4. Link)
www.google.de/search?hl=de&q=C+gr%C3%B6%C3%9Fter+gemeinsamer+Teiler&btnG=Google-Suche&meta=
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
05.12.2006, 18:03 Uhr
Blubber2063



Oder er schaut sich bezüglich GGT mal die mathematische Herkunft an und googelt mal nach dem euklidischen Algorithmus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
05.12.2006, 18:22 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


www.fun-soft.de/showtopic.php?threadid=3900
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
06.12.2006, 20:45 Uhr
nminh96



mein problem, ist, das ist das schon aus rein mathematischer sicht nicht verstehe, gibs dafür nicht ein ganz fertiger code, den mir jemadn geben könnte, wo man nur die variablennamen verändern muss?
--
www.minhhoang.de.vu - besuch doch mal meine homepage
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
06.12.2006, 20:51 Uhr
Pler
Einer von Vielen
(Operator)


Sag mal?
Einfach als beim ersten Link von mir kannst es ja wohl nicht mehr haben.
Aber vielleicht hast du meinen Hinweis auch nicht verstanden:
Man berechnet den größten gemeinsamen Teiler.

kleinerst gemeinsamer Teiler ... son Blödsinn.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
06.12.2006, 22:12 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hier, code vom erweiterten euklid


C++:
c#include <stdio.h>
/*Programbasis vergleiche BRK96 S.50*/

int main()
{
    long int a,b,rest,xalt,xmitte,xneu,yalt,ymitte,yneu,q,x,y,basica,basicb;

    clrscr();
    printf("Geben sie die 2 Zahlen ein von der die Vielfachdarstll. ermittelt werden soll:\n\n");
    scanf("%ld",&a);
    scanf("%ld",&b);
    printf("\n\n");
    basica=a; basicb=b;

    xalt=1; xmitte=0;   /*Startwert gilt fuer: a=1*a+0*b)*/
    yalt=0; ymitte=1;   /*Startwert gilt fuer: b=0*a+1*b)*/


    while(b)
    {
        rest=a%b;
        q=(a-rest)/b;        
        printf("%ld = %ld*%ld + %ld",a,q,b,rest);    

        xneu=xalt-xmitte*q;        /*die x'er werden zusammengezaehlt*/
        yneu=yalt-ymitte*q;        /*die y'er werden zusammengezaehlt*/

        printf("         %ld=%ld*%ld+%ld*%ld\n",b,basica,xmitte,basicb,ymitte);    
        a=b; b=rest;             /*Hier wird wie beim einfachen eukilid a=b und b=r gesetzt */


        /*Auch hier werden 2 Speichervariablen gebraucht und die 3. zur Uebergabe. Der "alte" Wert wird jeweils geloescht;
        wobei der "mittlere" ja zur weiterberechnung wieder gebraucht wird; darum geht der in die Variable des ehemals "alten ueber";
        der "neue" Wert stammt aus der Berechnung und geht somit in die Variable des ehemals "mittleren" ueber*/

        xalt=xmitte; xmitte=xneu;
        yalt=ymitte; ymitte=yneu;


    }
    x=xalt; y=yalt;  /*Es wird eigentlich xmitte und ymitte ausgegeben*/
    printf("\nVielfachsummendarstellung:\n%ld = %ld*%ld + %ld*%ld", a,x,basica,y,basicb);
    getch();
}



ansonsten: GGT bei GOOGLE eingeben und den mathematischen Algorithmus nachprogrammieren, geht in ca 4-5 Zeilen
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: