Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมค้นหาชื่อคอลัมน์สเปรดชีตจากหมายเลขคอลัมน์ใน C++


สมมติว่าเรามีค่าจำนวนเต็มบวก เราต้องหาชื่อคอลัมน์ที่เกี่ยวข้องตามที่ปรากฏในสเปรดชีต ดังนั้น [1 :A], [2 :B], [26 :Z], [27 :AA], [28 :AB] เป็นต้น

ดังนั้นหากอินพุตเท่ากับ 29 เอาต์พุตจะเป็น AC

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ในขณะที่ n ไม่ใช่ศูนย์ ให้ทำ -

    • n :=n − 1

    • res :=res + n mod 26 + ASCII ของ 'A'

    • n :=n / 26

  • ย้อนกลับความละเอียดอาร์เรย์

  • ผลตอบแทน

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   string convertToTitle(int n) {
      string res;
      while(n){
         res += (−−n)%26 + 'A';
         n /= 26;
      }
      reverse(res.begin(), res.end());
      return res;
   }
};
main(){
   Solution ob;
   cout << (ob.convertToTitle(30));
}

อินพุต

30

ผลลัพธ์

AD