WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 10.11.2007, 10:36   #1
druno
Newbie
 
Registriert seit: 10.11.2007
Beiträge: 15


Standard Armstrongzahlen

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.
druno ist offline   Mit Zitat antworten
Alt 10.11.2007, 12:17   #2
itsme
Jr. Member
 
Registriert seit: 11.07.2004
Beiträge: 56


Standard

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
itsme ist offline   Mit Zitat antworten
Alt 10.11.2007, 12:27   #3
druno
Newbie
 
Registriert seit: 10.11.2007
Beiträge: 15


Standard

danke für den tipp aber leider bin ich noch anfänger und sowas wie python code sagt mir leider nix.
druno ist offline   Mit Zitat antworten
Alt 10.11.2007, 12:39   #4
zAPPEL
Inventar
 
Registriert seit: 07.11.2001
Ort: Perchtoldsdorf
Alter: 45
Beiträge: 2.085

Mein Computer

Standard

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
zAPPEL ist offline   Mit Zitat antworten
Alt 10.11.2007, 12:42   #5
druno
Newbie
 
Registriert seit: 10.11.2007
Beiträge: 15


Standard

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
druno ist offline   Mit Zitat antworten
Alt 10.11.2007, 14:06   #6
druno
Newbie
 
Registriert seit: 10.11.2007
Beiträge: 15


Standard

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.
druno ist offline   Mit Zitat antworten
Alt 10.11.2007, 17:07   #7
smoking gnu
Veteran
 
Registriert seit: 15.02.2007
Beiträge: 209


Standard

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);
}
smoking gnu ist offline   Mit Zitat antworten
Alt 12.11.2007, 08:12   #8
druno
Newbie
 
Registriert seit: 10.11.2007
Beiträge: 15


Standard

Danke für die kleine übersetzung aber jetzt hätt ich noch zwei fragen wo kommt die 20 her und die 48?
druno ist offline   Mit Zitat antworten
Alt 12.11.2007, 09:48   #9
hewlett
Inventar
 
Registriert seit: 08.11.2000
Alter: 42
Beiträge: 1.524


Standard

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
hewlett ist offline   Mit Zitat antworten
Alt 12.11.2007, 10:00   #10
itsme
Jr. Member
 
Registriert seit: 11.07.2004
Beiträge: 56


Blinzeln

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.
itsme ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:34 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag