Code tìm chữ số đầu tiên của số nguyên dương bị sai kết quả

mọi người jup mk bài này vs
đề bài là tìm chữ số đầu tiên của số nguyên dương n;
mk làm như bài dưới đây nhưng khi mk viết ra một số khoảng 15-20 số thì không ra chính xác đc chữ số đầu tiên.
ai giải tích jup mk vs

#include <iostream>
using namespace std;

int main() {
    int t;
    int n;
    cin >> n;
    do {
        t = n % 10;
        n /= 10;
    }
    while (n > 0);

    cout <<  t <<endl;
    return 0;
}

Có minh họa gì không? Cụ thể nhập/xuất?

1 Like

Kiểu int mà đòi dài 15 20 chữ số sao đc. Dùng long int hoặc đổi xang xử lý chuỗi đi bạn.

2 Likes

unsigned long long cũng chỉ đến 19 chữ số thôi.
long long còn không tới. (4 \times 10^9)^2 \div 2

3 Likes

nếu mk nhập vào 34523525414375 thì sẽ ra 2

bạn nói rõ hơn được không ạ ?

char ch;
std::cin >> ch;
std::cout << ch << "\n";

vậy là được mà :innocent:

4 Likes

Nhận input dưới dạng chuỗi, thì ký tự đầu tiên là số bạn cần rồi còn gì

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?