Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ამ 2 ხაზს ყურადღება არ მიაქციოთ
- #include <bits/stdc++.h>
- using namespace std;
- // diff ფუნქცია, რომელიც არგუმენტად ერთ მთელ x რიცხვს იღებს და აბრუნებს მთელ რიცხვს
- int diff(int x) {
- // res ცვლადის აღწერა და მისთვის x-ის მინიჭება
- int res = x;
- // ყოველი მთელი i-სთვის [0; x) ინტერვალში
- for (int i = 0; i < x; i++)
- // res ცვლადის მნიშვნელობა გავზარდოთ i*(x-i-1)-ით
- res += i*(x-i-1);
- // res ცვლადის მნიშვნელობის დაბრუნება
- return res;
- }
- // f ფუნქცია, რომელიც არგუმენტად 1 მთელ რიცხვს (x-ს) იღებს და აბრუნებს მთელ რიცხვს
- int f(int x) {
- // თუ x უდრის ერთს, აბრუნებს 1-ს
- if (x == 1) return 1;
- // თუ არა და, აბრუნებს f(x-1) + diff(x-1)
- // რეალურად f რეკურენტული ფუნქციაა
- return f(x-1) + diff(x-1);
- }
- // main ფუნქცია. C-ში და C++-ში პროგრამა როგორც წესი ამ ფუნქციით იწყება.
- // int main()-ის შემდგომ ფიგურულ ფრჩხილებს შორის ყველაფერი რაც წერია main()-ის ნაწილია.
- // ანუ აქედან
- int main() {
- // პროგრამის დასაწყისი
- // integer ტიპის „n“ ცვლადის აღწერა და შემოტანა
- int n; cin >> n;
- // f(n)-ის გამოტანა
- cout << f(n) << "\n";
- // ვაბრუნებ 0-ს, რადგან main() integer ტიპის ფუნქციაა.
- // წესით return 0 („დააბრუნე 0“) შეგვეძლო არც დაგვეწერა, მაგრამ ეს გამონაკლისი მარტო main()-ს ეხება.
- // ამის მიუხედავად მაინც დავწერე, არავინ რომ დაიბნეს (სხვა ფუნქციები რატომ აბრუნებენ რაღაცას, main() კი - არა)
- return 0;
- }
- // აქამდე არის main() ფუნქცია.
- // ანალოგიურადაა სხვა ფუნქციებში.
Add Comment
Please, Sign In to add comment