Exercițiul 1
Pentru următoarea problemă, scrieți programul în limbajul C și testați-l în aplicația CodeBlocks: să se calculeze suma numerelor de la 1 la n.
#include <stdio.h>
int main() {
int n;
scanf( "%d", &n );
printf( "Suma este %d", n * (n + 1) / 2 );
return 0;
}
Exercițiul 2
Alin vrea să construiască un zid între doi stâlpi verticali, aflați la distanța D unul de altul. El dispune de n cărămizi de lungime l și înălțime h pe care le așează orizontal, una după alta, ca în figură. Pe fiecare rând orizontal, Ionel așează câte cărămizi încap, lăsând eventual un gol la capătul din dreapta. În sus, el se oprește atunci când se termină cărămizile.
Scrieți o schemă logică care citește D, n, l și h și afișează înălțimea maximă a zidului construit.
În exemplul din figură: dacă D = 11, n = 8, l = 3 și h = 2 atunci înălțimea maximă a zidului va fi 6 (3 cărămizi fiecare de înălțime 2).
Rezolvare
Alin va așeza numărul maxim posibil de cărămizi pe fiecare rând orizontal. Acest număr este câtul împărțirii lui D (distanța dintre stâlpi) la l (lungimea unei cărămizi). Acest cât se calculează în mod natural cu operatorul împărțire întreagă, /.
Vom avea, deci, D/l cărămizi pe rând.
Câte rânduri va așeza Alin? Deoarece avem n cărămizi și D / l cărămizi pe orizontală, pentru a calcula numărul de cărămizi pe verticală vom împărți n la numărul de cărămizi pe orizontală, adică D / l.
n / ( D / l ) este numărul de cărămizi pe verticală, dacă n se împarte la D / L, altfel trebuie să adunăm unu, deoarece ultimul rând de cărămizi nu va fi complet.
Pentru a acoperi ambele cazuri vom împărți ( n + D / l – 1 ) la D / L. Acesta este numărul maxim de cărămizi pe verticală.
Pentru a afla înălțimea zidului vom înmulți acest număr cu h, înălțimea unei cărămizi. Iată o soluție posibilă, schema logică și programul C:
#include <stdio.h>
int main() {
int D, n, l, h;
scanf( "%d%d%d%d", &D, &n, &l, &h );
printf( "%d", (n + D/ l - 1) / (D / l) * h );
return 0;
}
Răspunsuri