Предмет: Информатика, автор: 0динокийЯстреб

Дано натуральное число M. Написать алгоритм, который разбивает это число на три приблизительно равных между собой натуральных числа.


0динокийЯстреб: Паскаль

Ответы

Автор ответа: Khaker1999
0

#define M 100 // число


typedef unsigned int uint;


int main()

{

uint num[3];


for (int i = 0; i < 2; i++)

if ((double)M / 3 - M / 3 > 0.5)

num[i] = M / 3 + 1;

else

num[i] = M / 3;

num[2] = M - num[0] - num[1];


return 0;

}

Автор ответа: Giammy
0

// PascalABC.NET 3.4, сборка 1766 от 25.08.2018


begin

var n := ReadInteger('n->');

var (k, m) := (n mod 3, n div 3);

Println(k<=1?$'{m} {m} {n-2*m}':$'{m} {m + 1} {m + 1}');

end.


Аноним: Я считаю, что давая ответы, одновременно учим, как надо писать, как лучше.
Аноним: Проверок может и меньше, а вычислений больше намного
Giammy: Ну да)
Аноним: Можно тут вообще сделать форматную строку с $
Аноним: Будет изящно и непонятно непосвященным.
Giammy: С тернарным внутри, или что?
Giammy: Или я чего-то о форматной строке не знаю?
Аноним: Чего-то пока не знаете )))
Аноним: В MSDN по C# - интерполированные строки
Аноним: Вот... теперь хорошо. Покажем этим "сишникам", что им тут не тягаться))))
Похожие вопросы
Предмет: История, автор: Аноним