Рубрики

Выведите первые k цифр 1 / n, где n — положительное целое число

Учитывая положительное целое число n, выведите первые k цифр после точки в значении 1 / n. Ваша программа должна избегать переполнения и арифметики с плавающей точкой.

Примеры :

Input:   n = 3, k = 3
Output:  333

Input:   n = 50, k = 4
Output:  0200

Мы настоятельно рекомендуем свернуть браузер и попробовать это в первую очередь.

Давайте рассмотрим пример n = 7, k = 3. Первая цифра 1/7 — это «1», ее можно получить, выполнив целочисленное значение 10/7. Остаток 10/7 — 3. Следующая цифра — 4, которую можно получить, приняв целочисленное значение 30/7. Остаток 30/7 равен 2. Следующие цифры — 2, которые можно получить, приняв целочисленное значение 20/7.

C ++

#include <iostream>

using namespace std;

  
// Функция для печати первых k цифр после точки в значении
// из 1 / n. Предполагается, что n является положительным целым числом.

void print(int n, int k)

{

   int rem = 1; // Инициализировать остаток

  

   // Выполнить цикл k раз для печати k цифр

   for (int i = 0; i < k; i++)

   {

         // Следующая цифра всегда может быть получена как

         // делать (10 * бэр) / 10

         cout << (10 * rem) / n;

  

         // Обновить остаток

         rem = (10*rem) % n;

   }

}

  
// Программа драйвера для проверки вышеуказанной функции

int main()

{

    int n = 7, k = 3;

    print(n, k);

    cout << endl;

  

    n = 21, k = 4;

    print(n, k);

  

    return 0;

}

Джава

// Java-код для печати сначала k
// цифры 1 / n, где n - это
// положительное число

import java.io.*;

  

class GFG 

{

    // Функция для печати первой

    // k цифр после точки в значении

    // из 1 / n. n предполагается равным

    // положительное целое число

    static void print(int n, int k)

    {

        // Инициализировать остаток

        int rem = 1

          

        // Выполнить цикл k раз для печати k цифр

        for (int i = 0; i < k; i++)

        {

            // Следующая цифра всегда может быть

            // получено как делаю (10 * rem) / 10

            System.out.print( (10 * rem) / n);

  

            // Обновить остаток

            rem = (10 * rem) % n;

              

        }

          

    }

      

    // Драйвер программы

    public static void main(String []args)

    {

        int n = 7, k = 3;

        print(n, k);

        System.out.println();

          

        n = 21;

        k = 4;

        print(n, k);

          

    }

}

  
// Эта статья предоставлена vt_m

python3

# Python-код для печати первого k
# цифр 1 / n, где n является
# положительное число

import math

  
# Функция для печати первых k цифр
# после точки в значении 1 / n. н это
# предполагается положительным целым числом.

def Print(n, k):

    rem = 1 # Инициализировать остаток

      

    # Выполнить цикл k раз для печати

    # к цифр

    for i in range(0, k):

        # Следующая цифра всегда может

        # быть полученным

        # (10 * rem) / 10

        print(math.floor(((10 * rem)

                       / n)), end="")

          

        # Обновление остатка

        rem = (10*rem) % n

  
# Драйвер программы для тестирования
# выше функция

n = 7

k = 3

Print(n, k);

print(" ")

n = 21

k = 4

Print(n, k);

  
# Этот код предоставлен Sam007.

C #

// C # код для печати первых k цифр
// 1 / n где n - положительное целое число

using System;

  

class GFG {

      

    // Функция для печати первой

    // k цифр после точки в значении

    // из 1 / n. n предполагается равным

    // положительное целое число

    static void print(int n, int k)

    {

          

        // Инициализировать остаток

        int rem = 1; 

          

        // Выполнить цикл k раз, чтобы

        // печатаем k цифр

        for (int i = 0; i < k; i++)

        {

              

            // Следующая цифра всегда может быть

            // получено как делаю (10 * rem) / 10

            Console.Write( (10 * rem) / n);

  

            // Обновить остаток

            rem = (10 * rem) % n;

        }

    }

      

    // Драйвер программы

    public static void Main()

    {

        int n = 7, k = 3;

        print(n, k);

        Console.WriteLine();

          

        n = 21;

        k = 4;

        print(n, k);

    }

}

  
// Этот код предоставлен Sam007.

PHP

<?php
// Функция для печати первых k цифр
// после точки в значении 1 / n. н это
// предполагается положительным целым числом.

  

function println($n, $k)

{

    // Инициализировать остаток

    $rem = 1;

  
// Выполнить цикл k раз
// напечатать k цифр

for ($i = 0; $i < $k; $i++)

{

    // Следующая цифра всегда может

    // быть полученным

    // (10 * rem) / 10

    echo floor((10 * $rem) / $n);

  

    // Обновить остаток

    $rem = (10 * $rem) % $n;

}
}

  
// Код драйвера

$n = 7; $k = 3;

println($n, $k);

echo "\n";

  

$n = 21; $k = 4;

println($n, $k);

  
// Этот код предоставлен aj_36
?>


Выход :

142
0476

Ссылка:
Алгоритмы и программирование: проблемы и решения Александр Шен

Эта статья предоставлена Sachin . Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Выведите первые k цифр 1 / n, где n — положительное целое число

0.00 (0%) 0 votes