Προς το περιεχόμενο
  • 0

Χρήση αναδρομής σε μέθοδο της JAVA


free4you

Ερώτηση

Δημοσ. (επεξεργασμένο)

Καλησπέρα παιδιά

 

Θέλω να υλοποιήσω τις παρακάτω 2 μεθόδους με αναδρομή αλλά με έχουν δυσκολέψει αρκετά!!! Την δεύτερη την δουλεύω και νομίζω ότι βγαίνει αλλά για την πρώτη δεν έχω ιδέα ποια αναδρομική συνάρτηση μπορεί να δουλεύει με αυτό τον τρόπο... Κάθε βοήθεια ευπρόσδεκτη...

 

1η Μέθοδος:

 

public static void print_p(int k, int i)

Το k είναι δύναμη του 2. Η μεγαλύτερη γραμμή του πρότυπου έχει k αστερίσκους αρχίζοντας
από τη στήλη i. Για παράδειγμα το παρακάτω πρότυπο έχει φτιάχνεται με κλήση της μεθόδου
print_p(8,0).

 

*
* *
  *
* * * *
     *
     * *
        *
* * * * * * * *
           *
           * *
              *
            * * * *
                  *
                  * *
                     *

 

2η Μέθοδος:

 

Εκτύπωση δυαδικού αριθμού. Μέθοδος η οποία θα τυπώνει την τιμή ενός μη αρνητικού ακέραιου σε δυαδική μορφή.

Π.χ  n=11 θα τυπώνει 1011
        n=45 θα τυπώνει 101101
        n=64 θα τυπώνει 1000000

 


Ευχαριστώ...

Επεξ/σία από free4you
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Προτεινόμενες αναρτήσεις

  • 0
Δημοσ. (επεξεργασμένο)

Έχεις δίκιο, ευχαριστώ... Αυτό που μου κάνει εντύπωση είναι ότι χωρίς το τελευταίο print (που είναι έξω από το if) το πρόγραμμα φτιάχνει αυτό [για (4,8)]:

 

****
*****
******
*******
********

 

άρα μαζί με το τελευταίο print θα έπρεπε να φτιάχνει αυτό:

 

****
*****
******
*******
********
*******

να φτάνει δηλαδή στο m=n-1  να τυπώνει n να τρέχει και το τελευταίο print (όταν βγαίνει από την if τελευταία φορά το m είναι 7) και μετά να κλείνει!!!

 

Πως ανατροφοδοτείται και εμφανίζει και τα υπόλοιπα???

Επεξ/σία από free4you
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

με αναδρομή

    public static  void printAsterisks(int no)
    {
        for(int i=0;i<no;i++) System.out.print("*");
        System.out.print("\n");
            
    }
    public static void printTrigono(int start, int end)
    {   
        printAsterisks(start);
        if (start==end) return;
        printTrigono(start+1,end);
        printAsterisks(start);
    }

    public static void main(String[] args) {
       
        printTrigono(4,15);
    }


result 

****
*****
******
*******
********
*********
**********
***********
************
*************
**************
***************
**************
*************
************
***********
**********
*********
********
*******
******
*****
****
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Έχεις δίκιο, ευχαριστώ... Αυτό που μου κάνει εντύπωση είναι ότι χωρίς το τελευταίο print (που είναι έξω από το if) το πρόγραμμα φτιάχνει αυτό [για (4,8)]:

 

άρα μαζί με το τελευταίο print θα έπρεπε να φτιάχνει αυτό:

να φτάνει δηλαδή στο m=n-1  να τυπώνει n να τρέχει και το τελευταίο print (όταν βγαίνει από την if τελευταία φορά το m είναι 7) και μετά να κλείνει!!!

 

Πως ανατροφοδοτείται και εμφανίζει και τα υπόλοιπα???

Το τελευταιο print (όπως και το πρώτο) καλείται οσες φορές καλείται η trigono.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.