мастер ломания компов 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;