Составить алгоритм нахождения произведения целых нечетных чисел от 1 до 100.
Извини, я на украинском не могу)
Буду приводить аналогию на паскале.
В основе будет лежать "двойной" цикл. (for i:=1 to 100 do for j:=1 to 100 do...)
В первом цикле мы проверяем делится ли "i" на 2 (If i mod 2=0).
Если да(четное), тогда берем след число. Если нет(нечет), то запускаем второй цикл:
(For J:=1 to 100)
В нем мы тоже проверяем число на нечетность. Если число нечетное, тогда у нас есть уже 1ое произведение! "i" - Это первый множитель. "j" - второй. i*j - само произведение. Его можно вывести на экран (writeln(i*j)).
Получается мы берем по-порядку каждое число от 1 до 100, если оно нечетное, тогда по очереди умножаем его на каждое нечетное число, опять же, от 1 до 100.
На паскале:
For i:=1 to 100 do
If i mod 2<>0 then
for j:=1 to 100 do
if j mod 2<>0 then writeln(i*j);
Могут встречаться повторы (3*9 и 9*3)
#include<stdio.h>
int main(){
int n, i, a = 1, b = 1;
scanf("%d",&n); /* 0 < n < 47 */
for(i = 2; i < n; i++) a = (b+=a) - a;
printf("%d",b);
return 0;
}
// PascalABC.NET 3.2, сборка 1488 от 21.06.2017
// Внимание! Если программа не работает, обновите версию!
№1
begin
var a:=ArrRandom(ReadInteger('n='),-5,5); a.Println;
Writeln('Количество различных злементов равно ',
a.Distinct.Count)
end.
Пример
n= 20
-1 -1 5 -3 0 5 5 -5 -2 -4 -1 -2 -2 -2 2 -2 -3 1 2 1
Количество различных злементов равно 9
№2
begin
var (m,n):=ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('Вводите элементы построчно');
var t:=ReadMatrInteger(m,n).ElementsWithIndexes.MinBy(x->x[0]);
Writeln('Минимальный элемент A[',t[1]+1,',',t[2]+1,']=',t[0])
end.
Пример
Количество строк и столбцов в массиве: 3 4
Вводите элементы построчно
5 -11 0 9
12 7 -12 0
8 23 6 20
Минимальный элемент A[2,3]=-12
Можно с помрщью простой программы решить:
#include <iostream.h>
int main()
{
int i[12] = { 77, 105, 99, 107, 101, 121, 32, 77, 111, 117, 115, 101 };
for( int k = 0; k < 13; k++ ) std::cout << (char)(i[k]);
system("pause");
return 0;
}
<span>Ответ: Mickey Mouse</span>
1) 8
2) 7 выведет 1
3)
11 строка, поменять на k := k + 1;
14 строка заменить на if n = 1 then
Рабочий код
var
n, k: integer;
begin
read(n);
k := 0;
while n mod 7 = 0 do
begin
k := k + 1;
n := n div 7;
end;
if n = 1 then
writeln(k)
else
writeln('He существует')
end.
Правильное решение данной задачи
const
divider = 7;
var
n: integer;
k: real;
begin
read(n);
k := ln(n) / ln(divider);
if round(k) = k then
writeln(round(k))
else
writeln('He существует');
end.