Перейти к содержимому

Как найти первую цифру числа c

  • автор:

Подскажите как найти первую (последнюю) цифру числа (с++)

число целое, не указано это двух цифровое, трех цифровое или пяти цифровое.. . так что деление и остатки не прокатят.

Дополнен 11 лет назад
Вадим, мне потом их суммировать нужно, не прокатит
Лучший ответ
прокатит и деление и остатки: http://ideone.com/Nd7wMc
Остальные ответы
Преобразуйте в char* возьмите первый и последний байт, преобразуйте обратно в цифры.

1. Преобразовать число в строку (IntToStr)
2. Узнать количество символов в строке (length)
3. Взять первый и последний символ (str[])
4. Преобразовать обратно в число (StrToInt)

Источник: [ссылка появится после проверки модератором]

число % 10 вернёт остаток от деления на десять. конкретно — последняя цифра.
а первую цифру — в цикле ищи.
число >=10. число = (int) число/10;
в результате в числе будет только старший разряд числа

int funct(int number)
<
int digit1,digit2;
digit1=number (знак процента) 10;
if(number>=10)
number=number/10
digit2=number;
return digit1+digit2;
>
ёбанный движёк мэйла

Первая цифра числа

Найти первую цифру целого числа. Отсчёт начинать с наивысшего разряда.

Входные данные

Одно целое 64-х разрядное число, содержащее не менее одной цифры. Число может быть отрицательным.

Выходные данные

Выведите первую цифру заданного числа.

Алгоритм решения задачи

  • Удаляем из числа последнюю цифру пока оно больше или равно 10;

Решение

using System; class Program < static void Main(string[] args) < var n = Math.Abs(Convert.ToInt64(Console.ReadLine())); while (n >= 10) < n /= 10; > Console.WriteLine(n); > > 

Вывести первую цифру числа

Дано неотрицательное целое число. Найдите и выведите первую цифру числа. Формат входных данных: На вход дается натуральное число, не превосходящее 10000. Формат выходных данных: Выведите одно целое число — первую цифру заданного числа. Sample Input:

1234 

Sample Output:
Вот мой код:

package main import "fmt" func main() < var a int fmt.Print("Введите число: ") fmt.Scan(&a) if a < 10000 < a = a / 100 / 10 fmt.Println(a) >else < fmt.Println("Вы превысили число, не должно превышать 10000") >> 

Отслеживать
задан 26 авг 2019 в 18:16
63 1 1 золотой знак 2 2 серебряных знака 8 8 бронзовых знаков
А как вы решили бы эту задачку?
26 авг 2019 в 18:25

Я так решил ну сказали то что не правильно, любое натуральное число должно приходить например Sample Input: 234 Sample Output: 2

26 авг 2019 в 18:32
А вы свой код проверяли? Проверьте на числах разной длины, сразу станет видна ошибка.
26 авг 2019 в 19:22

да, проверял но он только работает с 4-х значным числом, а мне нужно чтобы работал 3-х значным и 2-х значным и всегда выводил первую цифру. Голову уже поломал какие только идеи не были и весь прикол в том что нужно сделать строго через условный оператор. Как бы условия задачи входит тоже

26 авг 2019 в 19:34

Исходное число вводится как строковый тип. Вот нафига его конвертировать в числовой тип, чтобы потом на выходе опять конвертировать в строковый? Опять же задание не предусматривает входного контроля и обработки неправильного ввода. И вообще задание противоречивое — согласно заданию, исходное число неотрицательное целое (в т.ч. возможен и ноль), но в описании входного формата оно натуральное.

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

Если число отрицательное, то поменяем его знак, сделав его положительным – от этого первая цифра не изменится. Делим число на 10 до тех пор, пока не останется в нем одна цифра – это и будет первая цифра исходного числа.

Читаем целое число n.

Если число отрицательное, то сделаем его положительным.

Делим число на 10, пока оно не будет содержать только первую цифру.

Выводим первую цифру числа.

Java р еализация

import java.util.*;

public class Main

public static void main(String[] args )

Scanner con = new Scanner(System. in );

long n = con .nextLong();

while ( n > 9)

System. out .println( n );

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *