Computer >> Máy Tính >  >> Lập trình >> C ++

Số cột trang tính Excel trong C ++


Chúng ta biết rằng các số cột trong excel là bảng chữ cái. Nó bắt đầu từ A, và sau Z, nó sẽ AA, AB, đến ZZ, rồi lại AAA, AAB, đến ZZZ, v.v. Vì vậy, cột 1 là A, cột 27 là Z. Ở đây chúng ta sẽ xem cách lấy ký tự cột nếu một số cột được đưa ra. Vì vậy, nếu số cột là 80, thì nó sẽ là CB.

Giả sử chúng ta có một số n, và giá trị của nó là 28, thì chúng ta cần nhắc lại với 26. Nếu phần dư là 0, thì số là 26, 52, v.v. Sau đó, chúng tôi đặt Z trong chuỗi đầu ra. Giá trị của n trở thành n / 26 - 1. Và nếu các phần còn lại khác 0 thì chúng ta chỉ cần chèn ký tự tương ứng vào chuỗi và thực hiện n =n / 26. Cuối cùng, mặt trái của chuỗi sẽ được in.

Ví dụ (C ++)

#include<iostream>
#include<algorithm>
using namespace std;
void showColumnLetters(int n) {
   string str = "";
   while (n) {
      int rem = n%26;
      if (rem==0) {
         str += 'Z';
         n = (n/26)-1;
      }
      else{
         str += (rem-1) + 'A';
         n = n/26;
      }
   }
   reverse(str.begin(), str.begin() + str.length());
   cout << str << endl;
}
int main() {
   int n = 700;
   cout << "Cell name of " << n << " is: ";
   showColumnLetters(700);
}

Đầu vào

Cell number: 700

Đầu ra

Enter cell number:700
Cell name of 700 is: ZX