加算するたびにBで割り切れるように、AにN桁を追加しますか?
a、b、nが与えられます。そして、次の条件を考慮し、反復ごとにbで割り切れるようなn桁をaに追加するための最適なソリューションを見つける必要があります。
-
aに数字を追加します そのようなa 追加した後、 a bで割り切れる 。
-
aの最小値を出力します step1をn回繰り返した後に可能。
-
印刷失敗 操作が失敗した場合。
数字を追加するたびに除算を確認してください。
入力
a=5 b=4 n=4
出力
52000
説明
0から追加される最初の桁 〜 9 、どの数字も aにならない場合 bで割り切れる 答えは-1 つまり、if 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; }
-
各単語が回文であるように単語を分割する方法の数を見つけるためのC++プログラム
ここでは、各単語が回文になるように単語を分割するいくつかの方法を見つけるためのC++プログラムについて説明します。 アルゴリズム Begin Take the word as input. Function partitionadd(vector<vector<string> > &u, string &s, vector<string> &tmp, int index): if (index == 0) tmp.c
-
PythonでAで割り切れ、その桁の合計がBに等しくなるような最小の正の整数を見つけます
2つの数AとBがあるとすると、MがAで割り切れ、Mの桁の合計がBと同じになるように、最小の正の数Mを見つける必要があります。したがって、そのような結果がない場合は、-を返します。 1. したがって、入力がA =50、B =2の場合、出力は200になります。これは、50で割り切れ、その桁の合計=2 + 0 + 0=2です。 これを解決するには、次の手順に従います- 2つの数値aとbと1つの文字列を含む1つの要素タイプのコンテナを定義します que:=新しいリスト elem:=(0、0、空白の文字列)を含む新しい要素 訪問済み[0,0]:=1 queの最後