переписать код из паскаля в с++ 1)
var
minNum, numDel, maxDel, n, m: longint;
begin
minNum := 48;
maxDel := 0;
for n := 568023 to 569230 do begin
numDel := 0;
for m := 1 to n do begin
if (n mod m = 0) then begin
numDel := numDel + 1;
end;
end;
if (numDel > maxDel) then begin
maxDel := numDel;
minNum := n;
end;
end;
writeln(maxDel, ' ', minNum);
end.
Прочитать четверостишие
Воспроизвести четверостишие в памяти
Рассказать четверостишие без единой ошибки
Объяснение:
Начало
Выполняется действие Прочитать четверостишие.
Затем, выполняется действие Воспроизвести четверостишие в памяти.
Затем, проверяется условие Рассказать четверостишие без единой ошибки.
Если условие верно (Руслан рассказал четверостишие без единой ошибки) цикл закончился. Если нет, то цикл идёт заново
(Выполняется действие Прочитать четверостишие.
Затем, выполняется действие Воспроизвести четверостишие в памяти.
Затем, проверяется условие Рассказать четверостишие без единой ошибки.
Если условие верно (Руслан рассказал четверостишие без единой ошибки) цикл закончился.)
Так будет по кругу, пока Руслан не расскажет четверостишие без единой ошибки.
Чтобы решить эту задачу, воспользуемся методом программирования:
1) напишем функцию, которая получает число в качестве аргумента и моделируя процесс преобразивания из условия возвращает результат:
int f(int n){
int d[4];
for(int i = 0; i < 4; i++){
d[3 - i] = n % 10;
n /= 10;
}
int u = d[0] + d[3], v = d[1] + d[2];
string res;
u < v ? res += to_string(u) + to_string(v) : res += to_string(v) + to_string(u);
return stoi(res);
}
2) так как нам нужно найти наибольшее четырехзначаное число, дающее результат 815, то запускаем цикл, идущий от самого большого четырехзначного числа(9999) до самого маленького(1000), и как только нам встретится число, дающее в результате нужное число(815), выведем его в консоль, и закончим работу программы, то, что выведет программа и будет ответом:
полный код(результат работы на фото) :
#include <iostream>
using namespace std;
int f(int n){
int d[4];
for(int i = 0; i < 4; i++){
d[3 - i] = n % 10;
n /= 10;
}
int u = d[0] + d[3], v = d[1] + d[2];
string res;
u < v ? res += to_string(u) + to_string(v) : res += to_string(v) + to_string(u);
return stoi(res);
}
int main(){
for(int i = 9999; i >= 1000; i--){
if(f(i) == 815){
cout << i;
return 0;
}
}
}
ответ: 9806