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

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


กำหนดช่วงของตัวเลขระหว่างจุดเริ่มต้นและจุดสิ้นสุด เป้าหมายคือการหาจำนวนตัวเลขที่มีหลักแรกเท่ากับหลักสุดท้ายและอยู่ในช่วง [ first,last ]

ตัวเลขหลักเดียวทั้งหมดจะถูกนับหากอยู่ในช่วง

ให้เราเข้าใจด้วยตัวอย่าง

ตัวอย่าง

ป้อนข้อมูล - เริ่มต้น =100 สิ้นสุด =200

ผลลัพธ์ - การนับจำนวนในช่วงที่หลักแรกเท่ากับหลักสุดท้ายของตัวเลขคือ 10

คำอธิบาย - ตัวเลขจะเป็น:

101, 121, 131, 141, 151, 161, 171, 181 และ 191

ป้อนข้อมูล - เริ่มต้น =1 สิ้นสุด =10

ผลลัพธ์ - การนับจำนวนในช่วงที่หลักแรกเท่ากับหลักสุดท้ายของตัวเลขคือ 9

คำอธิบาย - จะนับเลข 1 หลักทั้งหมด 1, 2, 3, 4, 5, 6, 7, 8, 9

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

ตัวเลขหลักเดียวทั้งหมดหากอยู่ในช่วง [start,end] จะถูกนับ ตอนนี้ให้ตรวจสอบตัวเลขตัวแรกและตัวสุดท้าย หากหลักแรกมากกว่าหลักสุดท้าย ให้เพิ่ม 8 + val/10 เพื่อนับ หากน้อยกว่านั้นให้เพิ่ม 9 + val/10 ในการนับ val คือหมายเลขปัจจุบันในการโทรซ้ำไปยังช่วง (int val)

  • นำจำนวนเต็มเริ่มต้นและสิ้นสุดเป็นตัวแปรช่วง
  • Set count =range(end) - range(start)
  • ช่วงฟังก์ชัน(int val) ใช้ตัวเลขจำนวนเต็มและส่งกลับจำนวนตัวเลขในช่วงที่หลักแรกเท่ากับตัวเลขสุดท้ายของตัวเลข
  • นับเริ่มต้นเป็น 0
  • ลงท้ายด้วยตัวเลขสุดท้ายคือ val%10
  • คืนค่า val หากเป็นตัวเลขหลักเดียว ( น้อยกว่า 10 )
  • ตอนนี้ใช้ while loop คำนวณเป็น start=val%10 ลดค่า val ลง 10 ดังนั้นการเริ่มต้นจะมีหลักแรกอยู่ในนั้น
  • ตอนนี้ถ้า start<=end ให้เพิ่ม 9 + set_val / 10 เพื่อนับ
  • ตอนนี้ถ้า start>end ให้บวก 8 + set_val / 10 เพื่อนับ
  • เมื่อสิ้นสุดการส่งคืน นับเป็นผลลัพธ์

ตัวอย่าง

#include <iostream>
using namespace std;

int range(int val) {
   int count = 0;
   int start;
   int end = val % 10;
   int set_val = val;

   if (val < 10) {
      return val;
   }
   end = val % 10;
   while (val) {
      start = val % 10;
      val = val / 10;
   }
   if (start <= end) {
      count = 9 + set_val / 10;
   } else {
      count = 8 + set_val / 10;
   }
   return count;
}
int main() {
   int start = 10, end = 50;
   int count = range(end) - range(start);
   cout << "Count of Numbers in Range where first digit is equal to last digit of the number are: " << count;
   return 0;
}

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

ผลลัพธ์

Count of Numbers in Range where first digit is equal to last digit of the number are: 4