На Паскале например такая программа это сделает:
program REBUS;
var
M,N,S,a,b,c,d,i: integer;
begin
Write('M= ');
Read(M);
Write('N= ');
Read(N);
S:=0;
for i:=M to N do
if (i>999) and (i<10000) then
a := i div 1000;
b := (i div 100) mod 10;
c := (i div 10) mod 10;
d := i mod 10;
if (a<>b) and (a<>c) and (a<>d) and (b<>c) and (b<>d) and (c<>d) then
if a*d - c*d = a + b + c + d then
S:=S+1;
end;
Write('S= ',S);
end.
Кстати, во всём диапазоне 4-значных чисел под эти критерии подходят всего 58 штук. И, вот они все:
2103; 2305; 2406; 2507; 2608; 2709; 3014; 3102; 3216; 3418; 3504; 3519; 3705; 3906; 4026; 4127; 4329; 4503; 4716; 4917; 5012; 5038; 5124; 5139; 5302; 5614; 5703; 5928; 6123; 6135; 6402; 6513; 6537; 6725; 6738; 6903; 6914; 7146; 7234; 7502; 7548; 7836; 8157; 8312; 8345; 8523; 8534; 8602; 8913; 8935; 8947; 9168; 9412; 9456; 9702; 9723; 9745; 9834
def add(x, y):
return x + y
Инструкция return говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x и y.
Теперь мы ее можем вызвать:
>>>
>>> add(1, 10)
11
>>> add('abc', 'def')
'abcdef'
Функция может быть любой сложности и возвращать любые объекты (списки, кортежи, и даже функции!):
>>> def newfunc(n):
... def myfunc(x):
... return x + n
... return myfunc
...
>>> new = newfunc(100) # new - это функция
>>> new(200)
300
Функция может и не заканчиваться инструкцией return, при этом функция вернет значение None:
>>> def func():
... pass
>>> print(func())
None
Объяснение:
На Паскале например такая программа это сделает:
program REBUS;
var
M,N,S,a,b,c,d,i: integer;
begin
Write('M= ');
Read(M);
Write('N= ');
Read(N);
S:=0;
for i:=M to N do
if (i>999) and (i<10000) then
begin
a := i div 1000;
b := (i div 100) mod 10;
c := (i div 10) mod 10;
d := i mod 10;
if (a<>b) and (a<>c) and (a<>d) and (b<>c) and (b<>d) and (c<>d) then
if a*d - c*d = a + b + c + d then
S:=S+1;
end;
Write('S= ',S);
end.
Кстати, во всём диапазоне 4-значных чисел под эти критерии подходят всего 58 штук. И, вот они все:
2103; 2305; 2406; 2507; 2608; 2709; 3014; 3102; 3216; 3418; 3504; 3519; 3705; 3906; 4026; 4127; 4329; 4503; 4716; 4917; 5012; 5038; 5124; 5139; 5302; 5614; 5703; 5928; 6123; 6135; 6402; 6513; 6537; 6725; 6738; 6903; 6914; 7146; 7234; 7502; 7548; 7836; 8157; 8312; 8345; 8523; 8534; 8602; 8913; 8935; 8947; 9168; 9412; 9456; 9702; 9723; 9745; 9834
def add(x, y):
return x + y
Инструкция return говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x и y.
Теперь мы ее можем вызвать:
>>>
>>> add(1, 10)
11
>>> add('abc', 'def')
'abcdef'
Функция может быть любой сложности и возвращать любые объекты (списки, кортежи, и даже функции!):
>>>
>>> def newfunc(n):
... def myfunc(x):
... return x + n
... return myfunc
...
>>> new = newfunc(100) # new - это функция
>>> new(200)
300
Функция может и не заканчиваться инструкцией return, при этом функция вернет значение None:
>>>
>>> def func():
... pass
...
>>> print(func())
None
Объяснение: