Քանի՞ հատ
*
կտպի տվյալ ծրագիրը։ #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
անդամների գումարի բանաձևը։ Կստանանք, որ տպված *
ների քանակը հավասար է`