每次新增後,如何向A新增N位數字使其能被B整除?


給定a、b和n。我們必須考慮以下條件,並找到最佳解決方案,向a新增n位數字,以便在每次迭代後它都能被b整除。

  • 以某種方式向**a**新增一位數字,使得新增後**a**能被**b**整除。

  • 列印經過n次步驟1迭代後**a**的最小可能值。

  • 如果操作失敗,則列印**失敗**。

檢查每次新增數字後的整除性。

輸入

a=5 b=4 n=4

輸出

52000

解釋

從**0**到**9**新增第一位數字,如果沒有任何數字使**a**能被**b**整除,則答案為**-1**,這意味著如果在**a**中添加了**n**位數字,**a**永遠不會被**b**整除。否則,新增滿足條件的第一位數字,然後在其後新增**0** (n-1)次,因為如果**a**能被**b**整除,則**a*10**、**a*100**……也能被**b**整除。

示例

#include <iostream>
using namespace std;
int main() {
   int a = 5, b = 4, n = 4;
   int num = a;
   for (int i = 0; i <= 9; i++) {
      int temp = a * 10 + i;
      if (temp % b == 0) {
         a = temp;
         break;
      }
   }
   if (num == a) {
      a = -1;
   }
   for (int j = 0; j < n - 1; j++) {
      a *= 10;
   }
   if(a>-1) {
      cout <<a;
   } else {
      cout <<”fail”;
   }
   return 0;
}

更新於:2019年8月16日

90 次瀏覽

開啟你的職業生涯

完成課程獲得認證

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