ინტერნეტში ბევრი რესურსია პროგრამირების ამოცანებზე.
მე მაქვს იდეა დავწეროთ ხოლმე ამოცანები და ვეცადოთ მათი ამოხსნა. ვისაც გსურთ დაწერეთ ამ ტოპიკში ამოცანა, ოღონდ პირობა იყოს გარკვევით და სრულყოფილად დაწერილი.
აბა ვნახოთ ვინ უფრო მალე და რამდენად სწორად ამოხსნის

ჩვეულებრივ ასეთი ამოცანების პასუხების კოდი ზომაში საკმაოდ პატარაა და ამდენად აქვს შეიძლება დაწერა ხოლმე.
ისე კარგი იქნებოდა ამისთვის ცალკე განყოფილების გახსნა. ჯერჯერობით კი პირველი ამოცანა:
სახელწოდება: ”3n+1”; შედარებითი სირთულე: ადვილი
პირობა:
------------------
მოცემულია შემდეგი ალგორითმი რიცხვთა მიმდევრობების გენერირებისათვის:
ვიწყებთ მთელი n რიცხვით. თუ n ლუწია, ვყოფთ 2-ზე. თუ კენტია, ვამრავლებთ 3-ზე და ვუმატებთ 1-ს. იგივე პროცედურა მეორდება n-ის ყოველი მომდევნო მნიშვნელობისათვის, ვიდრე n=1. მაგალითად შემდეგი თანმიმდევრობა როცა საწყისი n=22:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
ჯერჯერობით არაა დამტკიცებული რომ ეს ალგორითმი სასრულია ნებისმიერი მთელი n რიცხვისათვის. მაგრამ ცნობილია მისი სასრულობა ყველა მთელი რიცხვისათვის 1.000.000-მდე.
მოცემული n რიცხვისათვის ციკლის სიგრძეში ვიგულისხმოთ ყველა გენერირებული რიცხვის საერთო რიცხვი 1-ის ჩათვლით. მაგალითად, ზემოთმოყვანილ მაგალითში ციკლის სიგრძეა 16.
პირობა:
მოცემული ორი i, j რიცხვისათვის თქვენ უნდა განსაზღვროთ ამ ორ რიცხვს შორის არსებული ყველა რიცხვისათვის (i და j ჩათვლით) ციკლის სიგრძეთაგან მაქსიმალური.
გეძლევათ ფაილი i და j რიცხვების წყვილებით, თითო წყვილი თითო ხაზზე. ყველა რიცხვი აკმაყოფილებს პირობას 0 < n < 1.000.000
თქვენი პროგრამის მიერ გენერირებული ფაილი უნდა იყოს შემდეგი შიგთავსის:
თითოეულ ხაზზე i და j რიცხვები, აგრეთვე მაქსიმალური ციკლის სიგრძე. ეს ყველაფერი დაყოფილი პრაბელებით.
მაგალითი საწყისი ფაილისა:
1 10
100 200
201 210
900 1000
მაგალითი ამონახსნის ფაილისა:
1 10 20
100 200 125
201 210 89
900 1000 174
იმედია პირობა გასაგებია. ასე რომ როგორც გერმანელები იტყვიან, Los geht es!