Đổi chỗ chữ số đầu tiên và chữ số cuối cùng của một số

Đề bài:
Viết chương trình C cho phép nhập vào một số nguyên n và thực hiện đổi vị trí của chữ cái đầu tiên và chữ cái cuối cùng.
Lưu ý trong trường hợp chữ số cuối cùng là 0 thì khi đổi chỗ sẽ được loại bỏ (ví dụ 9800 -> 809)
INPUT
1234
OUTPUT
4321
Giải:


#include<iostream>
using namespace std;
int n;
int a[100];
void doivtri() {
 int i = 0;
 while(n > 0 ) {
  a[i] = n % 10;
  n = n / 10;
  i++;
 }
 if( a[0] != 0)
  cout << a[0];
 for(int j = i-2; j >= 1; j--)
  cout << a[j];
 cout << a[i-1];
}

int main() {
 cin >> n;
 doivtri();
}

Nhận xét

  1. mình không hiểu chương trình này lắm

    Trả lờiXóa
  2. Bạn thử nháp code ra giấy là rõ ngay thôi mà
    Dùng hàm void để tách các chữ số vào trong mảng,tiện thể đếm số chữ số trong số đó luôn = biến i VD: 1234 thì ta có được
    a[0]=4
    a[1]=3
    a[2]=2
    a[3]=1
    i=4
    Bây giờ in ra thôi. Do đảo đầu và cuối nên đẩy a[0]=4 lên đầu.
    Lưu ý TH chữ số cuối cùng là 0 thì bỏ nên thêm đk a[0]!=0 thì mới được in ra
    Do mình sẽ chỉ đổi 2 vị trí đầu và cuối => giữ nguyên i-2 số còn lại
    Xét a[1]=3
    a[2]=2.
    Giờ cần in a[2] ra trước xong mới đến a[1] nên chạy lặp từ i-2(bỏ số đầu,cuối) đến 1 => cout<<a[i];
    Sau vòng lặp ta được số 423? rồi. Bây h in nốt ? ra. Do vừa đảo a[3]=1 là số cuối cần in nên cout<<a[i-1] là xong

    Trả lờiXóa
  3. theo mình hiểu là đổi số chữ cái đầu và cuối thì input 1234, ouput phải là 4231 chứ nhể

    Trả lờiXóa

Đăng nhận xét

Bài đăng phổ biến từ blog này

Chuyển đơn vị đo nhiệt độ C và F

Tìm số đẹp (lộc phát)