Салмақ және жүк
Үлкен тарелка берілген. Ортасынан қақ бөлінген сызық бар. Бір жағына жүк, екінші жағына гир қойып тарелканы тепетеңдікте ұстау керек.Сізге М кг жүк берілсе, 2-нің n дәрежесіндегі гирлерді пайдаланып, (2, 4, 8, 16, 32, 64 ..) тарелкаға жүк пен гирлерді қою керек.
Мысалы, 18 кг жүк болса, 2 кг гирден 9 немесе 16 кг (2-нің 4 дәрежесі) және 2 кг 2 дана гир ғана қоя салуға болады.
Есепті шешумен қатар, оны барынша қысқа да қызықты жолмен шығарған адамға сыйлық беріледі. Мысал ретінде, 39 кг жүкті алуға болады.
ПыСы: есептің шығарылу жолын да келтіріңіз. Кез-келген бағдарламалау тілінде программалап шығарсаңыз, ол пргограммаңыз кез келген салмақтағы жүкке қатысты шығаратын формуласымен болса, тағы да сыйлық бар.
Мысалы, 18 кг жүк болса, 2 кг гирден 9 немесе 16 кг (2-нің 4 дәрежесі) және 2 кг 2 дана гир ғана қоя салуға болады.
Есепті шешумен қатар, оны барынша қысқа да қызықты жолмен шығарған адамға сыйлық беріледі. Мысал ретінде, 39 кг жүкті алуға болады.
ПыСы: есептің шығарылу жолын да келтіріңіз. Кез-келген бағдарламалау тілінде программалап шығарсаңыз, ол пргограммаңыз кез келген салмақтағы жүкке қатысты шығаратын формуласымен болса, тағы да сыйлық бар.
22 пікір
немесе
программалау түрінде
for i=1,n
s[i]=i^n
<code>$m = 39; $m2 = decbin($m); // мына функция санды екілік жүйеге айналдырады; $kol = iconv_strlen($m2) - 1; // мына айнымалыға екілік жүйедегі санның қанша символдан тұратынын афункция арқылы анықтап жазамыз (бұл мысалда 5 санын қайтарады) $i = 0; // цикл үшін $v = 0; // өзім үшін, ыңғайлылық үшін, мында екі санының дәрежелері жазылады while ($kol >= 0) { // цикл басталды, айнымалы нольге тең немесе үлкен болған жағдайда $w = pow(2, $kol) * $m2[$i]; // бұл айнымалы екінің $kol дәрежесін шығарып оны бірге көбейтеді if ($w != 0) { егер нәтиже ноль болмаса $v ++; if ($v == 1) { $sh = $w; // онда ол екінің дәрежесін тірке } else { $sh = $sh.' + '.$w; // бұл да тіркейді ыңғайлылық үшін жасап едім былай } } $i ++; $kol --; } echo '<br />'.$m.' = '.$m2.'<sub>2</sub> = '.$sh.' = '.$m;// нәтижені экранға шығару</code><code>$n = 39; $k = 0; echo $n.' = '; while ($n != 0) { if (pow(2, $k) > $n) { $n = $n - pow(2, $k-1); echo pow(2, $k - 1).'; '; $k = 0; } $k ++; }</code>Мына жерден тексеніп көре аласың. Біріншісі екілік жүйемен шығарады, екіншісі екілік жүйеге аудармай шығарады.
Қалай, логикалық/математикалық әлемнен шығып, программалау айдарын ашып алсақ қалай)
Сол жерге программалауды сүйетіндер жиналамыз)