Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » Wurzel!

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 ] [ 3 ] [ 4 ]
000
06.03.2007, 10:21 Uhr
~fasmat
Gast


So mein erstes Rätsel... Hab mir hier schon häufiger Topics durchgelesen, aber gegen euch Gurus bin ich ne kleine Null. Bin aber zufällig, alls ich versuchen wollte die Lösung eines Rätels in C++ umzusetzen auf etwas Interessantes draufgekommen und mir gedacht ich mach ein kleines Rätsel für euch daraus

Gesucht ist folgendes:


C++:
int wurzl(int c)
{ // hier die funktion
return ergebnis;}


Die Funktion wurzl darf keine Libaries verwenden!
par ist 150 (das hab ich geschafft gg)

Viel Spass

PS: Hoffe das gabs hier noch nicht

EDIT: * / und ^ sind natürlich nicht erlaubt
Man darf nur + und - verwenden.

EDIT2: negative Zahlen müssen nicht berücksichtigt werden, und ganzzahlige Genauigkeit reicht. Das sollten jetzt alle Regeln sein

Dieser Post wurde am 06.03.2007 um 10:58 Uhr von fasmat editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.03.2007, 11:32 Uhr
kronos
Quotenfisch
(Operator)


C oder C++? Wird auf- oder abgerundet?
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 06.03.2007 um 11:32 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.03.2007, 12:15 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Welche Wurzel denn? Die Quadratwurzel?


Zitat von fasmat:
und ganzzahlige Genauigkeit reicht.

Was meinst du damit?
Danach wäre ja die Wurzel aus 2 = 1 oder wie?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.03.2007, 12:58 Uhr
~fasmat
Gast


@kronos: egal ob C oder C++ (meine Lösung ist in C), nachkomastellen werden abgeschnitten, meine lösung berücksichtigt nachkommastellen nicht, es wird automatisch die "abgerundete" lösung ausgegeben
@guybrush: Quadratwurtzel

hab jetzt noch ein bisschen optimiert... komm auf 148.

Dieser Post wurde am 06.03.2007 um 13:01 Uhr von fasmat editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.03.2007, 13:10 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von fasmat:
nachkomastellen werden abgeschnitten, meine lösung berücksichtigt nachkommastellen nicht, es wird automatisch die "abgerundete" lösung ausgegeben


ist das dann nicht ziemlich sinnlos?

hab mal schnell was zusammengeschustert das 76 Zeichen hat, ist aber garantiert noch verbesserungsbedürftig.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.03.2007, 13:25 Uhr
~fasmat
Gast


Naja hab nicht geglaubt, dass es so einfach ist ^^. Bin wie gesagt, nur zufällig darüber gestoßen, und dachte mir daraus könnte man ein rätsel machen. Könnte meine Lösung auch für Nachkommastellen anpassen, würde aber nicht mehr unter 150 kommen...

k.A. wie ihr das immer schafft gg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
06.03.2007, 13:29 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Naja hab eben auch nur mal kurz die Beschreibung der Wurzelberechnung bei Wikipedia überflogen und das einfachste schien mir das Näherungsverfahren zu sein wo man im Prinziep einfach ausprobiert.

Meine Lösung sieht erstmal so aus:

C++:
#include <stdio.h>

int wurzel(int c)
{
for(int i=1,j,s;i<c;i++){for(j=1,s=0;j<=i;j++)s+=i;if(s>c)break;}return --i;
}

int main()
{
    printf ("%i\n",wurzel(9876));
    return 0;
}



Wenn man das jetzt auf Nachkommastellen ausweiten will wird es schon etwas komplizierter da man ja dann im Fall s>c nicht einfach aufhört sondern mit der nächst kleineren Stelle weiter probiert bis man soviel Stellen ermittelt hat wie man benötigt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
06.03.2007, 13:36 Uhr
~fasmat
Gast


naja ich bins mit arrays angegangen... hab nicht daran gedacht auf wikipedia nachzuschaun gg


C++:
int func(int c)
{bool *t;t=new bool[c];int i,k;for(i=0;i<c;i++)t[i]=1;for(i=1;i<c;i++){for(k=i;k<=c;k+=(i+1))t[k]=!t[k];}k=0;for(i=0;i<c;i++){if(t[i])k++;}return k;}

int main(void)
{
    printf ("%d", func(100));

    return 0;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
06.03.2007, 13:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Taylorreihe für ln und e^x entwicklen hatten wir ja schon in der Rätselecke

Weil a^b = e^ln(a^b) =e^(b*ln(a)) ist muss man für nur noch für b = 0.5 einsetzen und ist fertig
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
06.03.2007, 13:41 Uhr
~fasmat
Gast


ja aber für ln und e würde man libaries brauchen oder? und potenzen waren ja auch nicht erlaubt...
Dieser Post wurde am 06.03.2007 um 13:46 Uhr von fasmat editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]     [ Rätselecke ]  


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: