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

หาตัวเลข X ที่ผลรวมกับหลักของมันเท่ากับ N ใน C++

ในบทช่วยสอนนี้ เราจะหาตัวเลขที่ผลรวมรวมถึงหลักของมันเท่ากับตัวเลข N ที่กำหนด

แนวคิดง่ายๆ เราจะตรวจสอบตัวเลข 100 ตัวทางซ้ายและขวาของตัวเลขที่กำหนด มันจะไม่อยู่นอกขอบเขตนั้นเพราะ N ≤ 1000000000 และผลรวมจะไม่เกิน 100

มาดูขั้นตอนในการแก้ปัญหา

  • เริ่มต้นตัวเลข
  • เขียนลูปที่วน 100 ครั้ง
    • ได้ค่า n - i และ n + i
    • หาผลรวมของหลักและบวกเข้าไป
    • ถ้าอันไหนเท่ากับ N ให้พิมพ์มัน

ตัวอย่างโค้ด

#include <bits/stdc++.h>
using namespace std;

int digitsSum(int n) {
    int sum = 0;
    while (n) {
        sum += n % 10;
        n /= 10;
    }
    return sum;
}

void findX(long int n) {
    bool is_found = false;
    for (int i = 0; i <= 100; i++) {
        long int valueOnLeft = abs(n - i) + digitsSum(abs(n - i));
        long int valueOnRight = n + i + digitsSum(n + i);
        if (valueOnLeft == n) {
            is_found = true;
            cout << abs(n - i) << " ";
        }
        if (valueOnRight == n) {
            is_found = true;
            cout << (n + i) << " ";
        }
    }
    if (!is_found) {
        cout << "No numbers found";
    }
    cout << endl;
}

int main() {
    int n = 89;
    findX(n);
    return 0;
}

ผลลัพธ์

ถ้าคุณรันโปรแกรมด้านบน คุณจะได้ผลลัพธ์ดังนี้

76

สรุป

หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น