mit c rechnen
-
die idee der formel ist ganz einfach wenn du alle zahlen bis n aufaddieren willst addierst du die erste und die letzte zusammen...
hast du also n+1
dann addierst du die zweite und die vorletze zustammen n-1 + 2 = n+1dann addierst du die dritte und die vorvorletzte zusammen n-2 + 3 =n+1
es kommt also immmer n+1 raus und das ganze hast musst du n/2 mal machen
insgesammt also (n+1)*n/2...
-
Die Formel n(n+1)/2 soll übrigens der junge Gauß im alter von nichtmal 15 sich selbst erschlossen haben. Sein Lehrer wollte die Kinder ein bißchen beschäftigen und lies sie die Zahlen von 1 bis 100 zusammen rechnen. Gauß erkannte, das die erste und letzte, die 2. und vorletzte, immer 101 ergeben.
Nach 50 mal hatte er alle zahlen durch. Er rechnete 50*101=5050;In C:
#include <stdio.h> int main() { int i=1,sum=0; for (;i<=100;i++) sum+=i; printf("%d\n",sum); return 0; }
Chiao
-
Die Formel mag ja schön und gut sein, aber es scheint doch, als sei die Aufgabe, die Zahlen aufzusummieren. Nicht irgendeine andere Lösung zu finden, in dem Fall wär es wohl auch legitim, einfach printf("4950") zu schreiben
Da die Lösung für die Aufgabe schon mehrfach gegeben bzw. angedeutet wurde, frag ich mich allerdings, ob scrap die Antworten selektiv überliest ...
-
@Bashar
da der lehrer noch ne schleife will schlage ich folgende erweiterung vorwhile(0); printf("4950");
sollte in ner klausur eigentlich 100% der punkte bringen
-
...aber nur, wenn der Lehrer vorher zu viel Crack geraucht hat. Wenn schon, dann heißt das
while(puts("4950")) break;
-
Ihr verwirrt ihn doch bloß, lasst ihn endlich seine for-Schleife bauen die von 1-100 geht und alle Zahlen aufsummiert, omg
MfG SideWinder
-
@Sidewinder
meinst du soint i,summe=0; for(i=1;i<100;++i)summe=4950;
-
Wenn dann ja 5050 und net 4950
BTW: Wow deine Variable summe heißt ja gar nicht s
MfG SideWinder
-
Von dir hätte ich eher soetwas erwartet:
int s; for(int i=1;i-100 && (s=((100>>1)*(100+1)));++i);
Hoffentlich ist da jetzt kein Fehler, aber ich habs ja so toll geschrieben
MfG SideWinder
-
@Sidi
ich hätte eher sowas genommenint n=100,s; for(s=0;n;s+=n--);
-
Psst, bei deinem letzten Beispiel wird tatsächlich die Schleife als operatives Element benützt, das ist gar nicht gut jetzt kennt der Fragesteller einen korrekten Lösungsweg.
MfG SideWinder
-
guck dir mal den code von /bin/bash0R an...
der hat die lösung ja eh schon lange verraten...
ich konnte also nix mehr vorweg nehmen...
-
lösung hin oder her, hab alles noch net ausprobieren können, da ich das nur inna schule mache, und ich mein lehrer raucht crack, glaub ich!
thx an alle helfer das ergebnis editiere ich dann hier unter!mfg
scrap`//edit es geht thx, auch wenn bei echo §? 101 bzw 186 ausgeben wird!!!
-
man kanns echt kompliziert machen
-
Servus!
#include <stdio.h> int main() { int x,y=0; for(x=0;x<=99;x++) { y+=x; } printf("%i",y); return(0); }
Auch wenns schon jemand vorgeschlagen hat!
es hat mich gereizt das zu coden!