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

รหัส C++ เพื่อค้นหาจำนวนหลักในตัวเลขพิเศษ


สมมติว่าเราได้รับจำนวนเต็ม k เราโทรไปที่หมายเลขพิเศษหากตัวเลขทั้งหมดในหมายเลขนั้นเหมือนกัน ตัวอย่างเช่น 1, 11, 1111 เป็นตัวเลขพิเศษ เรานับเลขพิเศษตามลำดับ 1, 11, 111, 1111, 2, 22, 222, 2222, 3, 33, 333, 3333 เป็นต้น เราต้องหาจำนวนหลักทั้งหมดที่เป็นเลขพิเศษถึง k ค่าของ k ไม่เกิน 10,000

ดังนั้น หากอินพุตเท่ากับ k =9999 เอาต์พุตจะเป็น 90

ขั้นตอน

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

s := convert k to string
Define an array v of size: := {0, 1, 3, 6, 10}
print(((s[0] - '0') - 1) * 10 + v[length of s])

ตัวอย่าง

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

#include <bits/stdc++.h>
using namespace std;
#define N 100
void solve(int k) {
   string s = to_string(k);
   int v[] = {0, 1, 3, 6, 10};
   cout<< ((s[0] - '0') - 1) * 10 + v[s.length()] << endl;
}
int main() {
   int k = 9999;
   solve(k);
   return 0;
}

อินพุต

9999

ผลลัพธ์

90