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

การนำเลข 9 ออกใน C++

ปัญหา

สมมติว่าเรามีจำนวนเต็ม n เราต้องคืนค่าจำนวนเต็มลำดับที่ n หลังจากดำเนินการดังนี้: เริ่มจากจำนวนเต็ม 1 นำจำนวนเต็มที่มีเลข 9 ออก เช่น 9, 19, 29... ตอนนี้เราจะได้ลำดับจำนวนเต็มใหม่ เช่น 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, ... จำไว้ว่า 1 จะเป็นจำนวนเต็มตัวแรก

เช่น ถ้าผนวกเข้าเป็น 9 ผลลัพธ์จะเป็น 10

วิธีแก้ปัญหา

  1. ret := 0
  2. s := 1
  3. while n ไม่เท่ากับ 0 ทำ:
    • ret := ret + (n mod 9) * s
    • n := n / 9
    • s := s * 10
  4. s := s * 10

ตัวอย่างโค้ด C++

#include <bits/stdc++.h> 
using namespace std; 
typedef long long int lli; 

class Solution { 
public: 
    int newInteger(int n) { 
        int ret = 0; 
        lli s = 1; 
        while (n) { 
            ret += (n % 9) * s; 
            n /= 9; 
            s *= 10; 
        } 
        return ret; 
    } 
}; 

int main(){ 
    Solution ob; 
    cout << (ob.newInteger(120)); 
}

อินพุต

120

เอาต์พุต

143