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

ลบ 9 ใน C ++


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

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

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

  • ยกเลิก :=0

  • s :=1

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

    • ret :=ret + (n mod 9) * s

    • n :=n / 9

    • s :=s * 10

  • s :=s * 10

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

ตัวอย่าง

#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;
   }
};
main(){
   Solution ob;
   cout << (ob.newInteger(120));
}

อินพุต

120

ผลลัพธ์

143