Сума першої та останньої цифр числа#1606

Сума першої та останньої цифр числа (Розбір)

Аналіз алгоритму

Остання цифра числа дорівнює last = n \% 10.

Ділимо число на 10, поки воно більше 9. Тепер буде містити першу цифру вхідного числа: first = n.

Знаходимо та виводимо суму першої та останньої цифри.

Рішення за допомогою рядка. Прочитаємо число як рядок s. Якщо рядок починається з символу ‘-‘ (вхідне число від'ємне), то перша цифра числа знаходиться в s[1]. Останню цифру знаходимо, обчислюючи довжину рядка.

Реалізація алгоритму

Читаємо вхідне число .

scanf("%d", &n);

Якщо число від'ємне, то міняємо знак числа на протилежний.

if (n < 0) n = -n;

Остання цифра числа дорівнює last = n \% 10.

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]))