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

ตัวที่ n ที่ผลรวมของหลักเป็นสิบในภาษา C++


ตัวเลขที่ผลรวมหลักเท่ากับ 10 คือ

19, 28, 37, 46, 55, 64, 73, 82, 91, ฯลฯ..,

หากคุณสังเกตอนุกรมนี้ แต่ละตัวเลขจะเพิ่มขึ้น 9 มีตัวเลขในลำดับข้างต้นซึ่งผลรวมหลักไม่เท่ากับ 10 ขณะที่เพิ่มขึ้น 9 แต่คุณจะได้ตัวเลขทั้งหมดที่มีผลรวมหลักเท่ากับ 10

ดังนั้น เราสามารถมีลูปที่เพิ่มทีละ 9 และตรวจสอบผลรวมหลักและหาตัวเลขที่ n มาดูตัวอย่างกัน

ปัจจัยการผลิต

3
7

ผลลัพธ์

37
73

อัลกอริทึม

  • เริ่มต้นตัวเลข n
  • เริ่มต้นตัวนับเป็น 0
  • เขียนลูปที่วนซ้ำตั้งแต่ 19
    • หากผลรวมของตัวเลขหลักปัจจุบันคือ 10 ให้เพิ่มตัวนับ 1
    • ถ้าตัวนับเท่ากับ n ให้คืนค่าตัวเลขปัจจุบัน
    • เพิ่มตัวแปรวนซ้ำ 9

การนำไปใช้

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

#include <bits/stdc++.h>
using namespace std;
int findNthNumber(int n) {
   int count = 0, i = 19;
   while (true) {
      int sum = 0;
      for (int number = i; number > 0; number = number / 10) {
         sum = sum + number % 10;
      }
      if (sum == 10) {
         count++;
      }
      if (count == n) {
         return i;
      }
      i += 9;
   }
   return -1;
}
int main() {
   int n = 7;
   cout << findNthNumber(7) << endl;
   return 0;
}

ผลลัพธ์

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

73