![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Newbie
![]() Registriert seit: 10.11.2007
Beiträge: 15
|
![]() Hi soll dass in c programmieren und hab keine ahnung wie das geht. Wäre um tipps sehr dankbar
Eine Zahl mit n Ziffern in dezimaler Schreibweise heißt Arm-strong – Zahl, wenn sie gleich der Summe der n – ten Potenzen ihrer Ziffern ist. Beispiel: die Zahl 153 hat 3 Ziffern und es gilt:1³+5³+3³ .Schreiben Sie eine Funktion armstrong(n), die 1 zurückliefert, wenn die Ganzzahl n eine Armstrongzahl ist. Sonst wird 0 zurückgegeben. Erweitern Sie diese Funktion zur Berechnung beliebiger Armstrongzahlen größer als Null. Testen Sie diese Funktion im Hauptprogramm durch Ausgabe aller Arm-strongzahlen zwischen 1 und 100000. |
![]() |
![]() |
![]() |
#2 |
Jr. Member
![]() Registriert seit: 11.07.2004
Beiträge: 56
|
![]() das ist simple:
beispiel in python-code, aber sicher verständlich. musst nur nach c übersetzen ![]() import string import math for zahl in range(1, 1000): zahlstring = str(zahl) zahllaenge = len(zahlstring) ziffernsumme = 0 for ziffer in range(1, zahllaenge+1): tmpziffer = int(zahlstring[ziffer-1]) ziffernsumme = ziffernsumme + pow(tmpziffer, zahllaenge) if ziffernsumme == zahl: print "Zahl %d ist Armstrong-Zahl" % zahl |
![]() |
![]() |
![]() |
#3 |
Newbie
![]() Registriert seit: 10.11.2007
Beiträge: 15
|
![]() danke für den tipp aber leider bin ich noch anfänger und sowas wie python code sagt mir leider nix.
|
![]() |
![]() |
![]() |
#4 |
Inventar
![]() |
![]() Hirn anstrengen und die Hausübung selber machen
![]() ![]() ![]() lg
____________________________________
„Das menschliche Gehirn ist eine großartige Sache. Es funktioniert vom Moment der Geburt an – bis zu dem Zeitpunkt, wo du aufstehst, um eine Rede zu halten.“ Mark Twain "Windle shook his head sadly. Four exclamation marks, the sure sign of an insane mind" Reaper Man, Terry Pratchett |
![]() |
![]() |
![]() |
#5 |
Newbie
![]() Registriert seit: 10.11.2007
Beiträge: 15
|
![]() probier ich ja schon seit 3 stunden aber irgendwie fällt mir nix ein und wenn das gehirn dann auch noch sehr klein ist dann is um so schwieriger
|
![]() |
![]() |
![]() |
#6 |
Newbie
![]() Registriert seit: 10.11.2007
Beiträge: 15
|
![]() für bestimmte zahlen wie zum beispiel von 100 bis 999 oder 1000 bis 9999 könnte ich es ja programmieren mein problem liegt darin es zu verallgemeinern dass das programm die stellen von 1 bis n der zahl erkennt.
|
![]() |
![]() |
![]() |
#7 |
Veteran
![]() Registriert seit: 15.02.2007
Beiträge: 209
|
![]() schnell mal übersetzt:
Code:
int main () { char eingabe[20]; int zahllaenge, ziffernsumme=0; scanf("%s", eingabe); zahllaenge=strlen(eingabe); int i; for ( i=0; i<zahllaenge; i++){ ziffernsumme+=(int) pow(eingabe[i]-48, zahllaenge); } printf("%d", ziffernsumme); } |
![]() |
![]() |
![]() |
#8 |
Newbie
![]() Registriert seit: 10.11.2007
Beiträge: 15
|
![]() Danke für die kleine übersetzung aber jetzt hätt ich noch zwei fragen wo kommt die 20 her und die 48?
|
![]() |
![]() |
![]() |
#9 |
Inventar
![]() Registriert seit: 08.11.2000
Alter: 42
Beiträge: 1.524
|
![]() was ich echt nicht verstehe an dem ganzen:
du bekommst aufgaben die vom schwierigkeitsgrad sehr einfach gehalten sind und kannst damit überhaupt nichts anfangen!? Wenn euch euer Prof. solche Aufgaben gibt dann habt ihr ja die C-Grundlagen schon durch, also müsstest du das ja schon können (du kennst ja laut deiner Aussage nicht mal ein char array). Wenn ich mich an meine HTL Zeit zurückerinnere dann sind wir da schon anders zur Sache gegangen. Meines erachtens ist das Problem das viele Leute kein Algorithmisches Denken mehr haben und beim kleinsten Problem schon nicht mehr weiter wissen... ...
____________________________________
H.E.W.L.E.T.T.: Hydraulic Electronic Worker Limited to Exploration and Terran Troubleshooting |
![]() |
![]() |
![]() |
#10 |
Jr. Member
![]() Registriert seit: 11.07.2004
Beiträge: 56
|
![]() mein leitspruch:
ich kann jedem affen beibringen, dass er auf einen knopf drückt, damit er eine banane bekommt - das heisst aber nicht, dass er intelligent ist. ![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|