Количество конфет, оставшихся после k итераций
Учитывая стопку шоколадных конфет и целое число «k», то есть количество итераций, задача состоит в том, чтобы найти количество конфет, оставшееся после k итераций.
Примечание: на каждой итерации мы можем выбрать стопку с максимальным количеством шоколадных конфет, после чего квадратный корень из шоколада останется, а остальное будет съедено.
Примеры:
Ввод: шоколадные конфеты = 100000000, итерации = 3. Выход: 10 Ввод: шоколадные конфеты = 200, итерации = 2. Выход: 4
Примечание. Вывод печатается после округления значения, как во 2-м примере, результат будет около 3,76 ок.
Подход:
Дано, что максимум нет. конфет выбраны, поэтому учитывайте общую стопку, так как она будет максимальной.
Далее предполагается, что на каждой итерации остается только квадрат шоколадных конфет, так что, учитывая математическое уравнение
(((число) n ) n ) ... n для k раз = (число) nk
Поскольку здесь выполняется k умножение на квадратный корень, поэтому (1/2) k получает питание от N.
Рассмотрим на примере 100000000 конфет и нет. итераций равно 3, то это будет как
(((100000000) 1/2 ) 1/2 ) 1/2 = (100000000) (1/2) 3 = 10
Ниже приводится формула, необходимая для поиска оставшихся шоколадных конфет:
round(pow(n, (1.0/pow(2, k))))
C++
// C++ program to find remaining// chocolates after k iterations#include <bits/stdc++.h>using namespace std;// Function to find the chocolates leftint results(int n, int k){ return round(pow(n, (1.0 / pow(2, k))));}// Driver codeint main(){ int k = 3, n = 100000000; cout << "Chocolates left after " << k << " iterations are " << results(n, k); return 0;} |
Java
// Java program to find remaining// chocolates after k iterationsimport java.util.*;import java.lang.*;import java.io.*;class GFG{// Function to find the// chocolates leftstatic int results(int n, int k){ return (int)Math.round(Math.pow(n, (1.0 / Math.pow(2.0, k))));}// Driver codepublic static void main(String args[]){ int k = 3, n = 100000000; System.out.print("Chocolates left after " + k + " iterations are " + results(n, k));}}// This code is contributed by Subhadeep |
C#
// C# program to find remaining// chocolates after k iterationsusing System;class GFG{// Function to find the// chocolates leftstatic int results(int n, int k){ return (int)Math.Round(Math.Pow(n, (1.0 / Math.Pow(2.0, k))));}// Driver codepublic static void Main(){ int k = 3, n = 100000000; Console.Write("Chocolates left after " + k + " iterations are " + results(n, k));}}// This code is contributed// by ChitraNayal |
Python
# Python program to find# remaining chocolates# after k iterations# Function to find the# chocolates leftdef results(n, k): return round(pow(n, (1.0 / pow(2, k))))# Driver codek = 3n = 100000000print("Chocolates left after"),print(k),print("iterations are"),print(int(results(n, k)))# This code is contributed# by Shivi_Aggarwal |
PHP
<?php// PHP program to find remaining// chocolates after k iterations// Function to find// the chocolates leftfunction results($n, $k){ return round(pow($n, (1.0 / pow(2, $k))));}// Driver code$k = 3;$n = 100000000;echo ("Chocolates left after ");echo ($k); echo (" iterations are ");echo (results($n, $k));// This code is contributed// by Shivi_Aggarwal?> |
Javascript
<script>// javascript program to find remaining// chocolates after k iterations // Function to find the // chocolates left function results(n , k) { return parseInt( Math.round(Math.pow(n, (1.0 / Math.pow(2.0, k))))); } // Driver code var k = 3, n = 100000000; document.write("Chocolates left after " + k + " iterations are " + results(n, k));// This code contributed by aashish1995</script> |
Chocolates left after 3 iterations are 10
Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .