Программисты, снова нужна ваша помощь.

dota_in_my_heart

Король флуда
Дней с нами
3.242
Розыгрыши
0
Сообщения
634
Репутация
45
Реакции
588
Короче, тема такая. Мне нужна программа, чтобы определить последнюю цифру в девятизначном числе. Например, если мы вводим 123456789, то программа должна вывести 9. Я делал через остаток от деления числа на 10. До восьмизначного числа это работает, а при девятизначном на 123456789 выдаёт почему-то 2. Если ввести 123456719, то выдаст 0. Я не понимаю, что происходит. Хелпуйте. Если додумаетесь до альтернативного варианта нахождения последней цифры числа, кину +реп.
@F1N
 
определяешь длину числа
потом удаляешь (кол-во символов -1) символов с начала
 
  • Like
Реакции: dota_in_my_heart
Вообще,ты самый годный алгоритм описал...(любой другой будет тупым мозгоебством и тратой ресурсов)
P.S:Нихуя не программист...помню только Паскаль со школьного курса,да и то хуевенько...
 
  • Like
Реакции: dota_in_my_heart
Вообще,ты самый годный алгоритм описал...(любой другой будет тупым мозгоебством и тратой ресурсов)
P.S:Нихуя не программист...помню только Паскаль со школьного курса,да и то хуевенько...
да я понимаю, что это то, что нужно, просто непонятно почему он в девятизначном не определяет.
 
В бейсике не шарю, из типичных ошибок может быть только то, что ты выводишь не последнюю цифру, а символ с кодом последней цифры
 
  • Like
Реакции: dota_in_my_heart
В бейсике не шарю, из типичных ошибок может быть только то, что ты выводишь не последнюю цифру, а символ с кодом последней цифры
неа, вывожу именно цифру.
 
Ты все правильно сделал, просто дело в том, что (скорее всего) ты юзал integer у которого диапазон ограничен. Проверь может я прав)
В с++ на Visual Studio например int в диапазоне от -2 147 483 648 до 2 147 483 647.
Код:
#include<iostream>
using namespace std;

void main() {
    int a;
    cin >> a;
    if (a % 10 == 9)
        cout << '9' << endl;
    else cout << "Wrong input" << endl;
    system("pause>void");
}
 
  • Like
Реакции: dota_in_my_heart и faseri
я не программист, но разве нет такого понятия "адрес памяти" "обращение к памяти"? Или такое в басик не завезли ибо он настолько высокоуровневый что перегнал html.
 
да я понимаю, что это то, что нужно, просто непонятно почему он в девятизначном не определяет.
Ты все правильно сделал, просто дело в том, что (скорее всего) ты юзал integer у которого диапазон ограничен. Проверь может я прав)
В с++ на Visual Studio например int в диапазоне от -2 147 483 648 до 2 147 483 647.
Код:
#include<iostream>
using namespace std;

void main() {
    int a;
    cin >> a;
    if (a % 10 == 9)
        cout << '9' << endl;
    else cout << "Wrong input" << endl;
    system("pause>void");
}
Чувак дело описал(в Паскале в таких случаях используется longint или int64 вроде...)
 
  • Like
Реакции: dota_in_my_heart
  • Like
Реакции: dota_in_my_heart
  • Like
Реакции: dota_in_my_heart
  • Like
Реакции: dota_in_my_heart
Видел фичу с использованием рекурсивной функции, что-то такое(C++) :

Код:
char input(char last) {
char a = '\0';
cin >> a;
if (char == '\0') {
return last;
} else {
return input(a);
}

int main() {
char a;
cin >> a;
cout << input(a);
}

Идея короче ясна :6:

Получаем первый символ, потом вызывается input(a)
Кажый input читает текущий символ, но при этом помнит предыдущий. Если текущий оказался концом строки - возращает предыдущий, иначе - вызывает input
 
  • Like
Реакции: dota_in_my_heart