
Надо переписать программу с pascal на c++ program chess; var N,M,K,I:int64; begin readln(N,M,K);
if ((N mod K)=0) then if ((M mod K)=0) then for I:=K downto 1 do writeln((N*M)/K); if ((N mod K)<>0) then if ((M mod K)<>0) then writeln(((N*M)div K)+1); for I:=K-1 downto 1 do writeln((N*M)div K); end.

Ответы на вопрос

Ответ:
#include <iostream>
using namespace std;
int main()
{
long n, m, k, i;
setlocale(LC_ALL, "russian");
cin >> n >> m >> k;
if (n % k == 0)
if (m % k == 0)
for (i = k; i >= 1; i--)
cout << "\n" << n * m / k;
if (n % k != 0)
if (m % k != 0)
cout << "\n" << n * m / k + 1;
for (i = k - 1; i >= 1; i--)
cout << "\n" << n * m / k;
}



Вот эквивалентная программа на C++, основанная на вашем коде на Pascal:
cpp#include <iostream>
int main() {
long long N, M, K, I;
std::cin >> N >> M >> K;
if (N % K == 0) {
if (M % K == 0) {
for (I = K; I >= 1; --I)
std::cout << (N * M) / K << std::endl;
}
}
if (N % K != 0) {
if (M % K != 0)
std::cout << ((N * M) / K) + 1 << std::endl;
for (I = K - 1; I >= 1; --I)
std::cout << (N * M) / K << std::endl;
}
return 0;
}
Примечание: Ваш оригинальный код на Pascal содержит ошибку, связанную с использованием деления целых чисел. В некоторых случаях оно может приводить к неправильным результатам. В переведенной программе на C++ я использовал деление с плавающей точкой (/
), чтобы получить точные результаты. Если вам нужно сохранить поведение деления целых чисел, замените оператор /
на div
в соответствующих строках.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili