Количество конфет, оставшихся после k итераций

Опубликовано: 16 Января, 2022

Учитывая стопку шоколадных конфет и целое число «k», то есть количество итераций, задача состоит в том, чтобы найти количество конфет, оставшееся после k итераций.
Примечание: на каждой итерации мы можем выбрать стопку с максимальным количеством шоколадных конфет, после чего квадратный корень из шоколада останется, а остальное будет съедено.
Примеры:

 Ввод: шоколадные конфеты = 100000000, итерации = 3.
Выход: 10

Ввод: шоколадные конфеты = 200, итерации = 2.
Выход: 4

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Примечание. Вывод печатается после округления значения, как во 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>
Output: 
Chocolates left after 3 iterations are 10

 

Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .