C++程式:將數字分成兩個可被給定數字整除的部分


在本教程中,我們將編寫一個程式,將一個數字分成兩個部分,這兩個部分分別可被給定的數字整除。

我們以字串格式給定一個數字和另外兩個整數。程式應該返回是否可以將給定的數字分成兩個部分,使得第一部分可被第一個數字整除,第二部分可被第二個數字整除。

讓我們看看解決問題的步驟。

  • 初始化數字和兩個用於除法的整數。

  • 迭代數字,直到第一部分可被第一個數字整除。

  • 透過將每個字元轉換為數字來形成數字。

  • 當它可被第一個數字整除時,中斷迴圈。

  • 現在,從下一個索引開始迭代數字的第二部分。

  • 像第一部分一樣形成數字。

  • 檢查第二部分是否可被第二個數字整除。

  • 如果第一部分和第二部分分別可被第一個和第二個數字整除,則列印它們,否則列印“不可能”。

示例

讓我們看看程式碼。

 線上演示

#include <bits/stdc++.h>
using namespace std;
void checkTheDivisabilityOfPrefixAndSuffix(string num, int prefix_dividend, int suffix_dividend) {
   int N = num.length();
   bool is_prefix_divisable = false, is_suffix_divisable = false;
   int index = 0;
   int prefix = num[index] - '0';
   while (index < N) {
      if (prefix % prefix_dividend == 0) {
         is_prefix_divisable = true;
         break;
      }
      prefix = prefix * 10 + (num[++index] - '0');
   }
   int suffix = num[++index] - '0';
   while (index < N - 1) {
      suffix = suffix * 10 + (num[++index] - '0');
   }
   cout << suffix << endl;
   if (suffix % suffix_dividend == 0) {
      is_suffix_divisable = true;
   }
   if (is_prefix_divisable && is_suffix_divisable) {
      cout << prefix << " " << suffix << endl;
   }
   else {
      cout << "Not possible" << endl;
   }
}
int main() {
   string number = "125333";
   int prefix_dividend = 5;
   int suffix_dividend = 3;
   checkTheDivisabilityOfPrefixAndSuffix(number, prefix_dividend, suffix_dividend);
   return 0;
}

輸出

如果執行以上程式碼,則會得到以下結果。

125 333

結論

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

更新於: 2021年1月28日

497 次瀏覽

開啟你的職業生涯

完成課程獲得認證

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