Что не так с моим кодом?
use 5.024; # strict enabled by default
use warnings;
my $n = <STDIN>;
my $sum = int(($n % 10) + (($n % 100) / 10) + ($n / 100));
if ($n < 0) {
my $res = $sum * (-1);
print "$res";
} else {
print "$sum";
}
код выдает 13 если вводишь 192. Однако сумма трех этих цифр 12. В чем проблема?
По дате
По рейтингу
Слишком поздно приводите типы 2 + 9.2 + 1.92 = 13.12
Вам нужно числа приводить к целым до сложения, а не после.
Большое спасибо. А то я не понимал почему у меня выходят дроби, поэтому приводил их к int
Сделайте так:
$x+=$_ for split '', abs <STDIN>;
print $x;
Видео по теме