Как найти произведение всех чисел в диапазоне

мастер ломания компов

30 / 36 / 1

Регистрация: 19.12.2011

Сообщений: 474

Записей в блоге: 1

1

Найти произведение чисел в заданном диапазоне

21.05.2012, 22:32. Показов 9225. Ответов 2


Студворк — интернет-сервис помощи студентам

Необходимо быстренько решить задачи

Найти:
а) Произведение всех целых чисел от 8 до 15;
б) произведение всех целых чисел от a до 20 (значение а вводится с клавиатуры; https://www.cyberforum.ru/cgi-bin/latex.cgi?1 leq a leq  20 )
в) произведение всех целых чисел от 1 до b (значение b вводится с клавиатуры; https://www.cyberforum.ru/cgi-bin/latex.cgi?1 leq a leq  20)



0



мастер ломания компов

30 / 36 / 1

Регистрация: 19.12.2011

Сообщений: 474

Записей в блоге: 1

21.05.2012, 23:07

 [ТС]

2

НУ ПОМОГИТЕ!



0



crachka

32 / 32 / 30

Регистрация: 25.11.2011

Сообщений: 43

21.05.2012, 23:15

3

Лучший ответ Сообщение было отмечено verbenin как решение

Решение

1)

Pascal
1
2
3
4
5
6
7
8
uses crt;
var i,p:integer;
begin
p:=1;
for i:=8 to 15 do
p:=p*i;
writeln(p);
end.

Добавлено через 1 минуту
2)

Pascal
1
2
3
4
5
6
7
8
9
10
uses crt;
var i,a,p:integer;
begin
p:=1;
writeln('введите a');
read(a);
for i:=a to 20 do
p:=p*i;
writeln(p);
end.

Добавлено через 54 секунды
3)

Pascal
1
2
3
4
5
6
7
8
9
10
uses crt;
var i,b,p:integer;
begin
p:=1;
writeln('введите b');
read(b);
for i:=1 to b do
p:=p*i;
writeln(p);
end.



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

21.05.2012, 23:15

3

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    Given two integers L and R, the task is to find the cumulative product of digits (i.e. product of the product of digits) of all Natural numbers in the range L to R. 
    Examples
     

    Input: L = 2, R = 5 
    Output: 14 
    Explanation: 
    2 * 3 * 4 * 5 = 120
    Input: L = 11, R = 15 
    Output: 120 
    Explanation: 
    (1*1) * (1*2) * (1*3) * (1*4) * (1*5) = 1 * 2 * 3 * 4 * 5 = 120 
     

    Approach:
    To solve the problem mentioned above we have to observe that if: 
     

    • If the difference between L and R is greater than 9 then the product is 0 because there appears a digit 0 in every number after intervals of 9.
    • Otherwise, We can find the product in a loop from L to R, the loop will run a maximum of 9 times.

    Below is the implementation of the above approach: 
     

    C++

    #include <bits/stdc++.h>

    using namespace std;

    int getProduct(int n)

    {

        int product = 1;

        while (n != 0) {

            product = product * (n % 10);

            n = n / 10;

        }

        return product;

    }

    int productinRange(int l, int r)

    {

        if (r - l > 9)

            return 0;

        else {

            int p = 1;

            for (int i = l; i <= r; i++)

                p *= getProduct(i);

            return p;

        }

    }

    int main()

    {

        int l = 11, r = 15;

        cout << productinRange(l, r)

             << endl;

        l = 1, r = 15;

        cout << productinRange(l, r);

        return 0;

    }

    Java

    class GFG{

    static int getProduct(int n)

    {

        int product = 1;

        while (n != 0)

        {

            product = product * (n % 10);

            n = n / 10;

        }

        return product;

    }

    static int productinRange(int l, int r)

    {

        if (r - l > 9)

            return 0;

        else

        {

            int p = 1;

            for (int i = l; i <= r; i++)

                p *= getProduct(i);

            return p;

        }

    }

    public static void main(String[] args)

    {

        int l = 11, r = 15;

        System.out.print(productinRange(l, r) + "n");

        l = 1; r = 15;

        System.out.print(productinRange(l, r));

    }

    }

    Python3

    def getProduct(n):

        product = 1

        while (n != 0):

            product = product * (n % 10)

            n = int(n / 10)

        return product

    def productinRange(l, r):

        if (r - l > 9):

            return 0

        else:

            p = 1

            for i in range(l, r + 1):

                p = p * getProduct(i)

            return p

    l = 11

    r = 15

    print (productinRange(l, r), end='n')

    l = 1

    r = 15

    print (productinRange(l, r))

    C#

    using System;

    class GFG{

    static int getProduct(int n)

    {

        int product = 1;

        while (n != 0)

        {

            product = product * (n % 10);

            n = n / 10;

        }

        return product;

    }

    static int productinRange(int l, int r)

    {

        if (r - l > 9)

            return 0;

        else

        {

            int p = 1;

            for(int i = l; i <= r; i++)

               p *= getProduct(i);

            return p;

        }

    }

    public static void Main(String[] args)

    {

        int l = 11, r = 15;

        Console.Write(productinRange(l, r) + "n");

        l = 1; r = 15;

        Console.Write(productinRange(l, r));

    }

    }

    Javascript

    <script>

    function getProduct(n)

    {

        var product = 1;

        while (n != 0) {

            product = product * (n % 10);

            n = parseInt(n / 10);

        }

        return product;

    }

    function productinRange(l, r)

    {

        if (r - l > 9)

            return 0;

        else {

            var p = 1;

            for (var i = l; i <= r; i++)

                p *= getProduct(i);

            return p;

        }

    }

    var l = 11, r = 15;

    document.write( productinRange(l, r)+ "<br>");

    l = 1, r = 15;

    document.write( productinRange(l, r));

    </script>

    Time Complexity: O((r-l)*log(r))

    Auxiliary Space: O(1)

    Last Updated :
    25 Apr, 2023

    Like Article

    Save Article

    Как мне сделать такую вещь? Надо в цикле for i in range найти произведение цифр каждого i. К примеру
    for i in range (15, 25)
    и выводиться будет 5, 6, 7 … 6, 8, 10
    Получается реализовать только для одного числа, а с for уже никак


    • Вопрос задан

      более двух лет назад

    • 881 просмотр

    def mult(l):
    	m=1
    	for i in l:
    		m*=int(i)
    	return m
    print ([ mult(str(x)) for x in range(15,26)])

    def getting_digits(number):
    	answer = str()
    	while number:
    		answer += str(number % 10)
    		number //= 10
    	return(answer)
    
    def digits_mult(low_border, high_border):
    	for i in range(low_border, high_border):
    		number = 1
    		for digit in getting_digits(i):
    			number *= int(digit)
    		print(number, end = ' ')

    Пригласить эксперта


    • Показать ещё
      Загружается…

    26 мая 2023, в 13:53

    15000 руб./за проект

    26 мая 2023, в 13:51

    15000 руб./за проект

    26 мая 2023, в 13:45

    1000 руб./за проект

    Минуточку внимания

    Формулировка задачи:

    Необходимо быстренько решить задачи

    Найти:
    а) Произведение всех целых чисел от 8 до 15;
    б) произведение всех целых чисел от

    a

    до 20 (значение

    а

    вводится с клавиатуры; )
    в) произведение всех целых чисел от 1 до

    b

    (значение

    b

    вводится с клавиатуры; )

    Код к задаче: «Найти произведение чисел в заданном диапазоне»

    textual

    uses crt;
    var i,b,p:integer;
    begin
    p:=1;
    writeln('введите b');
    read(b);
    for i:=1 to b do
    p:=p*i;
    writeln(p);
    end.

    Полезно ли:

    12   голосов , оценка 4.500 из 5

    1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var n: Longint; m, d, s: Integer; begin Write (‘Введите число: ‘); ReadLn (n); m:=n mod 10; while n>0 do begin d:=n mod 10; n:=n div 10; if m=d then Inc (s, d) else if m>d then begin m:=d; s:=d; end; end; WriteLn (‘Сумма наименьших цифр: ‘, s); end.

      • Комментировать
      • Жалоба
      • Ссылка

    Найди верный ответ на вопрос ✅ «Найти произведение всех целых чисел заданного диапазона. Опишите функцию: function CalcProizv (Nachalo, Konec: integer) : longint; …» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.

    Искать другие ответы

    Новые вопросы по информатике

    Главная » Информатика » Найти произведение всех целых чисел заданного диапазона. Опишите функцию: function CalcProizv (Nachalo, Konec: integer) : longint;

    Понравилась статья? Поделить с друзьями:
  • Как найти бригаду на строительство дома
  • Как найти текст постановления по уин
  • Как найти поверхность шара вписанного в цилиндр
  • Как найти какой гидрокомпенсатор стучит
  • Как найти телефон разряженный в снегу