Ուղարկել | Բոլոր լուծումները | Լավագույն լուծումները | Վերադառնալ ցուցակին |
HASHAST - Հաշվենք աստիճանը |
Տրված x-ից x31 աստիճանը կարելի է հաշվել x-ը 30 անգամ իրենով բազմապատկելով.
x2 = x × x, x3 = x2 × x, x4 = x3 × x, …, x31 = x30 × x
Հաշվի առնելով, որ քառակուսի բարձրացնելը կրճատում է բազմապատկումների հաջորդականությունը, կարելի է x31-ը հաշվել ութ բազմապատկման միջոցով.
x2 = x × x, x3 = x2 × x, x6 = x3 × x3, x7 = x6 × x, x14 = x7 × x7, x15 = x14 × x, x30 = x15 × x15, x31 = x30 × x
Սա x31-ը հաշվելու ամենակարճ եղանակը չէ։ Միայն յոթ բազմապատկումների միջոցով հաշվելու շատ եղանակներ կան։ Օրինակ, հետևյալ կերպ.
x2 = x × x, x4 = x2 × x2, x8 = x4 × x4, x10 = x8 × x2, x20 = x10 × x10, x30 = x20 × x10, x31 = x30 × x
Ավելի քիչ բազմապատկումների թվով հնարավոր չէ հաշվել x31-ը։ Այնպես որ, սա միայն բազմապատկումների միջոցով x31-ը հաշվելու ամենաարդյունավետ եղանակներից մեկն է։
Բայց եթե թույլատրվի օգտագործել նաև բաժանում, գործողությունների քանակը կարելի է կրճատել։ x31-ը կարելի է հաշվել 6 գործողության (5 բազմապատկման և 1 բաժանման) միջոցով.
x2 = x × x, x4 = x2 × x2, x8 = x4 × x4, x16 = x8 × x8, x32 = x16 × x16, x31 = x32 ÷ x
Սա x31-ը հաշվելու ամենաարագ եղանակներից մեկն է, եթե բաժանումը նույնքան արագ կատարվի, որքան բազմապատկումը։
Պահանջվում է գրել ծրագիր, որը գտնի, թե տրված n-ի համար առնվազն քանի բազմապատկման և բաժանման գործողությունների միջոցով է կարելի հաշվել xn-ը ։
Մուտքը
Մուտքի յուրաքանչյուր տողում տրված է մի n բնական թիվ, որը չի գերազանցումը 1000-ը։ Մուտքային տվյալներն ավարտվում են 0-ով, որը պետք չէ մշակել։
Ելքը
Ելքում, մուտքային յուրաքանչյուր n թվի համար հարկավոր է արտածել մի թիվ՝ x-ից սկսած xn-ը բազմապատկման և բաժանման միջոցով ստանալու համար մինիմալ գործողությունների քանակը։
Օրինակ
Մուտքը. 31
1
0
Ելքը. 6 0
Ավելացրեց. | Andreasyan |
Ամսաթիվ. | 2012-06-03 |
Ժամանակի սահմանափակումը. | 0.103s |
Ծրագրի տեքստի սահմանափակումը. | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Լեզուներ. | C CSHARP C++ 4.3.2 CPP CPP14 JAVA PAS-GPC PAS-FPC PYTHON3 |
Աղբյուրը. | ընտրական 2010, Armenia QF 2007 |
թաքցնել մեկնաբանությունները
2014-07-18 08:39:17 Martin
12 11 9 |
|
2013-09-07 17:23:43 Levon
1000 556 123 0 patasxan@ incha ?? |