|
мастер ломания компов 30 / 36 / 1 Регистрация: 19.12.2011 Сообщений: 474 Записей в блоге: 1 |
|
|
1 |
|
Найти произведение чисел в заданном диапазоне21.05.2012, 22:32. Показов 9225. Ответов 2
Необходимо быстренько решить задачи Найти:
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 |
|||||||||||
|
Решение1)
Добавлено через 1 минуту
Добавлено через 54 секунды
1 |
|
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
21.05.2012, 23:15 |
|
3 |
Improve Article
Save Article
Like Article
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 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;

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