Γράψτε συνάρτηση η οποία δέχεται ως παράμετρο έναν
θετικό ακέραιο αριθμό Ν και κάνει τα ακόλουθα:
α) αν ο αριθμός είναι μονοψήφιος επιστρέφει το διπλάσιο
του,
β) σε οποιαδήποτε άλλη περίπτωση,
* υπολογίζει τα ψηφία του Ν,
* αν ο αριθμός είναι διψήφιος επιστρέφει το άθροισμά
τους,
* αν ο αριθμός είναι τριψήφιος επιστρέφει το γινόμενό
τους,
* αν ο αριθμός είναι τετραψήφιος επιστρέφει το αποτέ-
λεσμα που προκύπτει αν υψώσουμε στο τετράγωνο
κάθε ψηφίο και αθροίσουμε τις δυνάμεις αυτές,
* σε οποιαδήποτε άλλη περίπτωση επιστρέφει την
τιμή -1.
Λύση
ΣΥΝΑΡΤΗΣΗ AΠOT(Ν) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν, Ψ3, Ψ2, Ψ1, Ψ0
ΑΡΧΗ
ΑΝ Ν <= 9 ΤΟΤΕ
ΑΠΟΤ <-- 2*Ν
ΑΛΛΙΩΣ_ΑΝ Ν <= 99 ΤΟΤΕ
Ψ1 <-- Ν DIV 10
Ψ0 <-- Ν MOD 10
ΑΠΟΤ <-- Ψ1+Ψ0
ΑΛΛΙΩΣ_ΑΝ Ν <= 999 ΤΟΤΕ
Ψ2 <-- Ν DIV 100
ΑΠΟΤ <-- -1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
θετικό ακέραιο αριθμό Ν και κάνει τα ακόλουθα:
α) αν ο αριθμός είναι μονοψήφιος επιστρέφει το διπλάσιο
του,
β) σε οποιαδήποτε άλλη περίπτωση,
* υπολογίζει τα ψηφία του Ν,
* αν ο αριθμός είναι διψήφιος επιστρέφει το άθροισμά
τους,
* αν ο αριθμός είναι τριψήφιος επιστρέφει το γινόμενό
τους,
* αν ο αριθμός είναι τετραψήφιος επιστρέφει το αποτέ-
λεσμα που προκύπτει αν υψώσουμε στο τετράγωνο
κάθε ψηφίο και αθροίσουμε τις δυνάμεις αυτές,
* σε οποιαδήποτε άλλη περίπτωση επιστρέφει την
τιμή -1.
Λύση
ΣΥΝΑΡΤΗΣΗ AΠOT(Ν) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Ν, Ψ3, Ψ2, Ψ1, Ψ0
ΑΡΧΗ
ΑΝ Ν <= 9 ΤΟΤΕ
ΑΠΟΤ <-- 2*Ν
ΑΛΛΙΩΣ_ΑΝ Ν <= 99 ΤΟΤΕ
Ψ1 <-- Ν DIV 10
Ψ0 <-- Ν MOD 10
ΑΠΟΤ <-- Ψ1+Ψ0
ΑΛΛΙΩΣ_ΑΝ Ν <= 999 ΤΟΤΕ
Ψ2 <-- Ν DIV 100
Ψ1 <-- (Ν MOD 100) DIV 10
Ψ0 <-- (Ν MOD 100) MOD 10
ΑΠΟΤ <-- Ψ2*Ψ1*Ψ0
ΑΛΛΙΩΣ_ΑΝ Ν <= 9999 ΤΟΤΕ Ψ3 <-- Ν DIV 1000
Ψ2 <-- (Ν MOD 1000) DIV 100
Ψ1 <-- ( (Ν MOD 1000) MOD 100) DIV 10
Ψ0 <-- ( (Ν MOD 1000) MOD 100) MOD 10
ΑΠΟΤ <-- Ψ3^2+Ψ2^2+Ψ1^2+Ψ0^2
ΑΛΛΙΩΣΑΠΟΤ <-- -1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου