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

โค้ด C++ หาจำนวนหลักตัวเลขรวมในตัวเลขพิเศษ

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

เช่น ถ้าค่าที่ป้อนเข้าเป็น k = 9999 ผลลัพธ์จะได้ 90

ขั้นตอนการแก้ปัญหา

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

s := แปลง k เป็นสตริง กำหนดอาร์เรย์ v ขนาด: := {0, 1, 3, 6, 10} พิมพ์(((s[0] - '0') - 1) * 10 + v[ความยาวของ 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