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

จำนวนหลักในจำนวนที่ n ทำจากสี่หลักที่กำหนดใน C++


เราต้องหาจำนวนหลักในหลักที่ n ของตัวเลข 4 หลักที่กำหนดให้ 1, 2, 3 และ 4

ชุดเลขสี่ตัวบนมีดังนี้

1, 2, 3, 4, 11, 12, 13, 14, 21, 22, 23, 24...

เราจำเป็นต้องหาจำนวนหลักของตัวเลขที่ n จากชุดข้อมูลข้างต้น หากคุณสังเกตรูปแบบอย่างระมัดระวัง คุณจะพบประเด็นต่อไปนี้

  • มี 4 ตัว หลัก 1

  • มีตัวเลข 16 หลัก 2 หลัก

  • รูปแบบยังคงดำเนินต่อไปตามกำลังของ 4

มาดูตัวอย่างกัน

ป้อนข้อมูล

7

ผลผลิต

2

ตัวเลขที่ 7 ในซีรีส์คือ 13 และจำนวนหลักในมันคือ 2

อัลกอริทึม

  • เริ่มต้นหมายเลข n.
  • เริ่มต้นตัวแปรสองตัว ตัวหนึ่งเพื่อเก็บผลลัพธ์ และอีกตัวหนึ่งเพื่อเก็บผลรวมของตัวเลขในชุดข้อมูล
  • สร้างลูปที่เพิ่มตัวแปรการวนซ้ำโดยยกกำลัง 4
    • เพิ่มตัวเลขปัจจุบันให้กับตัวแปรผลรวม
    • ถ้าผลรวมมากกว่า n ให้ตัดลูปออก
    • บวก 1 เข้ากับผลลัพธ์เนื่องจากชุดตัวเลขถัดไปจะมีตัวเลขมากกว่าชุดก่อนหน้า 1 หลัก
  • ส่งคืนผลลัพธ์

การนำไปใช้

ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน C++

#include <bits/stdc++.h>
using namespace std;
int getDigitsCount(int n) {
   int i, result = 1, sum = 0;
   for (i = 4; ; i *= 4) {
      sum += i;
      if (sum >= n) {
         break;
      }
      result += 1;
   }
   return result;
}
int main() {
   int n = 57;
   cout << getDigitsCount(n) << endl;
   return 0;
}

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

3