在C++中查詢一個數字X,其與自身數字之和等於N


在本教程中,我們將找到一個數字,其與自身數字之和等於給定的數字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

結論

如果您在本教程中遇到任何疑問,請在評論區提出。

更新於:2021年2月1日

152 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.