Разбор
Анализ алгоритма
Последняя цифра числа равна .
Делим число на 10, пока оно больше 9. Теперь будет содержать первую цифру входного числа: .
Находим и выводим сумму первой и последней цифры.
Решение при помощи строки. Прочитаем число как строку s
. Если строка начинается с символа ‘-‘ (входное число отрицательно), то первая цифра числа находится в s[1]
. Последнюю цифру находим, вычисляя длину строки.
Реализация алгоритма
Читаем входное число .
scanf("%d", &n);
Если число отрицательно, то меняем знак числа на противоположный.
if (n < 0) n = -n;
Последняя цифра числа равна .
last = n % 10;
Делим число на 10, пока оно больше 9. Теперь содержит первую цифру входного числа.
while (n > 9) n = n / 10;
first = n;
Вычисляем и выводим ответ.
res = first + last; printf("%d\n", res);
Реализация алгоритма – строка
Входное число читаем в строку s
.
char s[100];
Читаем входное число. Установим pos
равным индексу, который указывает на первую цифру числа.
gets(s); pos = (s[0] == '-') ? 1 : 0;
Находим сумму первой s[pos]
– ‘0’ и последней s[strlen(s) – 1]
– ‘0’ цифры.
sum = s[pos] + s[strlen(s)-1] - 2*'0';
Выводим ответ.
printf("%d\n",sum);
Java реализация
import java.util.*; public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); char[] s = con.nextLine().toCharArray(); int pos = 0; if (s[0] == '-') pos = 1; int res = s[pos] + s[s.length - 1] - 2 * '0'; System.out.println(res); con.close(); } }
Python реализация
Читаем входное число .
n = int(input())
Если число отрицательно, то меняем знак числа на противоположный.
if n < 0: n = -n
Преобразовываем число в строку.
n = str(n)
Выводим сумму первой и последней цифры.
print(int(n[0]) + int(n[-1]))