Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Đang ở
    89 Tam Trinh - Hoàng Mai - Hà Nội
    Bài viết
    0

    Em ngu muội, nhờ các bác thông não cho em

    Em mới học C++, học kiểu nhìn code ví dụ và gõ theo thôi ạ. Nay thấy bài khó quá ko hiểu gì cả, em đăng lên đây mong pro nào đi qua giải thích cho em dòng code này với ạ. Tks all !
    Đề bài: Viết chương trình C++ để nhập một số nguyên và in kết quả ra màn hình dưới dạng số đảo ngược (về thứ tự) của số nguyên vừa nhập đó.
    Mã:
    long int so1, so2, sodaonguoc = 0;
    	cout << "nhap mot so nguyen: " << endl;
    	cin >> so1;
    	so2 = so1;
    	do
    	{
    		sodaonguoc = sodaonguoc * 10;
    		int digit = so1 % 10;
    		sodaonguoc += digit;
    		so1 /= 10;
    	} while (so1);

  2. #2
    Theo như mình hiểu:
    ví dụ so1=abc
    sodaonguoc = (c *10 +b)*10 + a

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
        long int so1, /* so2, */ sodaonguoc = 0;    cout << "nhap mot so nguyen: " << endl;    cin >> so1;    //so2 = so1; //không thấy dùng tiếp    do{        sodaonguoc = sodaonguoc * 10;        int digit = so1 % 10;        sodaonguoc += digit;        so1 /= 10;    } while (so1);

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi QuangTrung93
    bài này so2 ko dùng bỏ đi, thuật toán sử dụng tính chất này, giả sử có số tự nhiên n = abcd thì số đảo ngược m = dcba = 1000*d + 100*c + 10b +a = 100*(10d+c)= 10*(10*(10d+c)+b)+a; + 10b + a
    Ví dụ với n = 6789 thì ct chạy như sau
    vòng lặp 1: n = 6789
    sodaonguoc = 0;
    digit = 6789%10 = 9;
    sodaonguoc = 9;
    n = 678;
    vòng lặp 2: n= 678
    sodaonguoc = 10*9 = 90;
    digit = 678 % 10 = 8;
    sodaonguoc = 90 + 8 = 98
    n = 678/ 10 = 67;
    vòng lặp 3: n = 67
    sodaonguoc = 98 *10 = 980;
    digit = 67 % 10 = 7;
    sodaonguoc = 980 + 7 = 987;
    n = 67 / 10 = 6;
    vòng lặp 4 : n = 6
    sodaonguoc = 9870;
    digt = 6;
    sodaonguoc = 9876;
    n = 0;
    kết thúc vòng lặp sodaonguoc = 9876
    Cám ơn bro, giải thích rất chi tiết, em đã hiểu rồi ạ !

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ngoviet169
    Em mới học C++, học kiểu nhìn code ví dụ và gõ theo thôi ạ. Nay thấy bài khó quá ko hiểu gì cả, em đăng lên đây mong pro nào đi qua giải thích cho em dòng code này với ạ. Tks all !
    Đề bài: Viết chương trình C++ để nhập một số nguyên và in kết quả ra màn hình dưới dạng số đảo ngược (về thứ tự) của số nguyên vừa nhập đó.
    Mã:
    long int so1, so2, sodaonguoc = 0;
    	cout << "nhap mot so nguyen: " << endl;
    	cin >> so1;
    	so2 = so1;
    	do
    	{
    		sodaonguoc = sodaonguoc * 10;
    		int digit = so1 % 10;
    		sodaonguoc += digit;
    		so1 /= 10;
    	} while (so1);
    bài này so2 ko dùng bỏ đi, thuật toán sử dụng tính chất này, giả sử có số tự nhiên n = abcd thì số đảo ngược m = dcba = 1000*d + 100*c + 10b +a = 100*(10d+c)= 10*(10*(10d+c)+b)+a; + 10b + a
    Ví dụ với n = 6789 thì ct chạy như sau
    vòng lặp 1: n = 6789
    sodaonguoc = 0;
    digit = 6789%10 = 9;
    sodaonguoc = 9;
    n = 678;
    vòng lặp 2: n= 678
    sodaonguoc = 10*9 = 90;
    digit = 678 % 10 = 8;
    sodaonguoc = 90 + 8 = 98
    n = 678/ 10 = 67;
    vòng lặp 3: n = 67
    sodaonguoc = 98 *10 = 980;
    digit = 67 % 10 = 7;
    sodaonguoc = 980 + 7 = 987;
    n = 67 / 10 = 6;
    vòng lặp 4 : n = 6
    sodaonguoc = 9870;
    digt = 6;
    sodaonguoc = 9876;
    n = 0;
    kết thúc vòng lặp sodaonguoc = 9876

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •