Kiểm tra số nguyên dương n có phải là số đối xứng hay không

Số đối xứng là số có giá trị không đổi nếu đọc các chữ số từ phải qua trái

Ví dụ:
Đối xứng: 13531
Không đối xứng: 13921

Đầu vào
Đầu vào từ bàn phím gồm T+1 dòng.
Dòng đầu tiên chứa số nguyên T là số lượng số cần kiểm tra;
T dòng tiếp theo, mỗi dòng chứa một số nguyên n.

Đầu ra
In ra màn hình T dòng, in ra “yes” hoặc “no” tương ứng với số n có phải số đối xứng hay không.
giúp e tìm lỗi với ạ.

#include<stdio.h> 
#include <iostream> 
using namespace std; 
int main(){ 
    int n; cin >> n; 
    int a[n]; 
    for (int i=0; i<n; i++){ 
        cin >> a[i]; 
    } 
    int s=0,r,t; 
    for(int i=0; i<n; i++){ 
        a[i]=a[i]/10;
        r=a[i]%10; 
        s=s*10+r; 
    } 
        for(int i=0; i<n; i++){ 
        if(t==s) 
        cout << "yes\n"; 
        else cout << "no\n"; 
        }
        return 0; 
}

Screenshot (369)

giờ sửa như nào nhỉ anh. em hơi lơ mơ tại mới học.

Bạn có thể giữ nguyên cấu trúc vòng lặp for đầu tiên:

for(int i=0; i<n; i++)
{
    // với mỗi phần tử a[i], làm những việc sau:
    // lưu giá trị a[i] vào một biến temp
    // thực hiện một vòng lặp để lấy ra từng chữ số của biến temp
    // với mỗi chữ số của biến temp, cộng dồn vào biến tổng theo công thức:
    // tong = tong * 10 + (chữ số của temp)
    // so sánh biến tổng với a[i] lúc đầu, nếu hai giá trị bằng nhau thì in ra yes, ngược lại in ra no
}

Bạn có thể chuyển ý tưởng trên sang ngôn ngữ lập trình không? Để thực hiện ý tưởng này bạn cần 2 vòng lặp lồng nhau đấy, chứ ko phải 2 vòng lặp riêng biệt như ban đầu bạn làm đâu.

3 Likes
#include <iostream>

int main() {
    std::string s; std::cin >> s;
    while (std::cin >> s) std::cout << (std::string(s.rbegin(), s.rend()) == s ? "yes" : "no") << "\n";
}

:crazy_face:

1 dòng :cold_face:

#include <iostream>
#include <algorithm>
#include <iterator>

int main() {
    std::transform(std::next(std::istream_iterator<std::string>(std::cin)),
                   std::istream_iterator<std::string>(),
                   std::ostream_iterator<std::string>(std::cout, "\n"),
                   [](const auto& s) { return std::string(s.rbegin(), s.rend()) == s ? "yes" : "no"; });
}
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?