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

αποτέλεσμα κώδικα


antemar

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

Δημοσ.

Μπορεί κάποιος να μου εξηγήσει πως μπορώ να ελέγξω ότι το αποτέλεσμα του πιο κάτω κώδικα είναι 1650;

sum = 0;

for(i = 1; i < 5; i++)

for(j = 10; j < 15; j++)

for (k = 0; k < 5; k++)

sum += i + j + k;

printf("%d\n", sum)

Δημοσ.

Δηλαδή εάν καταλάβα καλά παίρνεις το αποτέλεσμα 1650 στο sum και θες να ελένξεις ότι οντως είναι τόσο?

Δημοσ.

post-4351-12906296743_thumb.jpg

 

Απλά, εφαρμόζεις διαδοχικά τον τύπο για το άθροισμα όρων αριθμητικής προόδου: Σ_n = (n/2) * (a_1 + a_n)

Δημοσ.

Σε σχεδόν παρόμοιο κώδικα, έχω αποτέλεσμα 517. Μπορείτε να μου εξηγείσετε πως προκύπτει;

 

int cnt = 0;

for (i = 0; i < 10; i++)

for (j = 0; j < 10; j++)

for (k = 0; k < 10; k++)

if (2*i + j >= 3*k)

cnt++;

printf("%d\n", cnt);

Δημοσ.

post-4351-12906296746_thumb.jpg

 

Τοιουτοτρόπως...

 

 

ΥΓ: Υπενθυμίζεται ότι η γενική μορφή του τύπου αθροίσματος όρων αριθμητικής προόδου με διαφορά ω είναι ο image022.gif, όπου α ο πρώτος όρος και ν το πλήθος των όρων.

Δημοσ.

Μπορείς να γίνεις λίγο πιο αναλυτικός;

Αυτό το τριπλό άθροισμα είναι λίγο δυσνόητο, ιδιαίτερα το ταιλευταίο σκέλος. Δηλ. πως προκύπτει εκείνο το (2i+j)/3 ;

Δημοσ.

Ακυρο, για την παράσταση (2i+j)/3, το κατάλαβα. Πως γίνεται ο υπολογισμός του όμως δεν έχω καταλάβει.

Δημοσ.

Προσπαθώ να εντοπίσω το λάθος στην παράσταση που έδωσα πιο πάνω, γιατί το αποτέλεσμα που βγάζω δε συμφωνεί με το 517...

Δημοσ.

parsifal, με το χέρι πώς λύνεις τις διαδοχικές ΑΠ του πρώτου τύπου που έδωσες;

 

Για γράψε τα πρώτα βήματα αν σου είναι εύκολο...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...