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

ค้นหาการเปลี่ยนแปลงที่น้อยที่สุดของจำนวนที่กำหนดใน C ++


ในปัญหานี้ เราจะได้รับ N จำนวนมาก หน้าที่ของเราคือค้นหาการเปลี่ยนแปลงที่น้อยที่สุดของจำนวนที่กำหนด

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

N = 4529016

ผลลัพธ์

1024569

แนวทางการแก้ปัญหา

วิธีแก้ปัญหาอย่างง่ายคือการจัดเก็บค่าจำนวนเต็มแบบยาวไว้ที่ astring จากนั้นเราจะเรียงลำดับสตริงที่เป็นผลลัพธ์ของเรา แต่ถ้ามีเลขศูนย์นำหน้า เราจะเลื่อนมันหลังจากค่าแรกที่ไม่ใช่ศูนย์

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
string smallestNumPer(string s) {
   int len = s.length();
   sort(s.begin(), s.end());
   int i = 0;
   while (s[i] == '0')
      i++;
   swap(s[0], s[i]);
   return s;
}
int main() {
   string s = "4529016";
   cout<<"The number is "<<s<<endl;
   cout<<"The smallest permutation of the number is "<<smallestNumPer(s);
   return 0;
}

ผลลัพธ์

The number is 4529016
The smallest permutation of the number is 1024569