⏭️ 🟠 Վարժություն 13
Քանի՞ հատ
*
կտպի տվյալ ծրագիրը։ #include <iostream>
void print(int n)
{
int i = 0;
if (n > 1)
print(n - 1);
for (i = 0; i < n; i++)
std::cout << " * ";
}
int main() {
int n;
std::cout << "Input number ";
std::cin >> n;
if (n < 0) {
std::cout << "Invalid input";
return 0;
}
print(n);
}
Հուշում 1
Փորձեք պատասխանել հարցին
n
-ի փոխարեն օգտագործելով կոնկրետ թվեր։ Քանի՞ հատ
*
կտպի ծրագիրը, եթե`n=1
n=2
n=3
n=4
🚩 Հուշում 2
n=2
դեպքում կունենաք հետևյալ իրավիճակը։ Սկզբում կկանչվի
print(2)
ֆունկցիան։ Այնուհետև կկանչվի print(1)
ֆունկցիան։print(1)
կանչի ժամանակ կտպվի 1 հատ *
։print(1)
կանչի ավարտից հետո կշարունակի աշխատել print(2)
ֆունկցիան, որը իր հերթին էկրանին կտպի ևս 2 հատ *
:Այսպիսով, ընդհանուր առմամբ կտպվի
1 + 2 == 3
հատ *
:n = 4
դեպքում ֆունկցիաների կանչի շղթան կունենա հետևյալ տեսքը`print(1)
ֆունկցիան կտպի 1
հատ *
print(2)
ֆունկցիան կտպի 2
հատ *
print(3)
ֆունկցիան կտպի 3
հատ *
print(4)
ֆունկցիան կտպի 4
հատ *
Այսպիսով, ընդհանուր առմամբ կտպվի
1 + 2 + 3 + 4 == 10
հատ *
n = 10
- ի դեպքում ֆունկցիաների կանչի շղթան կունենա հետևյալ տեսքը։Ընդհանուր առմամբ կտպվի
🚩 Հուշում 3 (լուծում)
Եթե փորձենք ընդհանրացնել լուծումը մուտքագրված կամայական
n
թվի համար, կտեսնենք, որ տպված *
- երի քանակը հավասար է`Վերհիշենք դպրոցական մաթեմատիկայի թվաբանական պրոգրեսիայի առաջին
n
անդամների գումարի բանաձևը։ Կստանանք, որ տպված *
ների քանակը հավասար է`