Составить программу в Pascal. С клавиатуры вводится трехзначное число N. Вычислить цифры данного числа без использования функции деления с остатком MOD, возвести в куб каждое из чисел и сложить.
BobbyFresnel:
Есть только два варианта получения цифр в числе. Либо последоватльно получать остатки от деления на 10, либо перевести число в строку, разобрать ее на символы и каждый символ отдельно преобразовать в одноразрядное число.
Ответы
Ответ дал:
1
полученное число переводится в строку, строка посимвольно разбивается на три переменные, каждая из которой переводится обратно в число.
var N, m, s, k: string;
N1, a, b, c ,d : integer;
begin
readln(N);
N1:=inttostr(N);
m := copy(N1, 1, 1);
s := copy(N1, 2, 1);
k := copy(N1, 3, 1);
a:= strtoint(m);
b:= strtoint(s);
c:= strtoint(k);
d:=a*a*a+b*b*b+c*c*c;
writeln(d);
end
Спасибо, к сажалению, мы не проходили такие функции как inttostr, copy и т. д. поэтому учитель не принет это. Но все равно спасибо за помощь)
Если вы вообще ничего "не проходили", то и решить задачу невозможно.
Это первое. И второе. Учитель не имеет права не принимать работу по причине того, что он этого не рассказывал. Он только может не принимать, если потребует объяснить, как это сделано и работает, а Вы не сможете дать ответа.
Уже хотя бы потому, что Вы всегда вправе сказать, что занимаетесь предметом дополнительно в интернет-школе.
Ответ дал:
1
===== PascalABC.NET =====
begin
ReadInteger.ToString.Select(c -> c.ToDigit ** 3).Sum.Println
end.
Приложения:
Хех, это тоже он не примет. Но спасибо за помощь))
Если честно, мне совершенно все равно, какое еще самодурство придумает Ваш учитель. У Вас есть права - боритесь за них, а не пытайтесь остальной мир подогнать под хотелки своего "педагога"
Что до решения, я его дал, потому что меня повеселил предыдущий ответ. Двенадцать строк кода вместо одной, что пишется за полминуты.
Кстати, она обрабатывает числа длиной от 1 до 9 цифр.
Вас заинтересует
1 год назад
1 год назад
1 год назад
1 год назад
3 года назад
3 года назад
8 лет назад