Количество конфет, оставшихся после 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 left int results( int n, int k) { return round( pow (n, (1.0 / pow (2, k)))); } // Driver code int 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 iterations import java.util.*; import java.lang.*; import java.io.*; class GFG { // Function to find the // chocolates left static int results( int n, int k) { return ( int )Math.round(Math.pow(n, ( 1.0 / Math.pow( 2.0 , k)))); } // Driver code public 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 iterations using System; class GFG { // Function to find the // chocolates left static int results( int n, int k) { return ( int )Math.Round(Math.Pow(n, (1.0 / Math.Pow(2.0, k)))); } // Driver code public 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 left def results(n, k): return round ( pow (n, ( 1.0 / pow ( 2 , k)))) # Driver code k = 3 n = 100000000 print ( "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 left function 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 и многому другому, см. Полный курс подготовки к собеседованию .