C++で数字kまたはkで割り切れる数字を含むn番目の数値を検索します
2つの正の整数nとkが与えられ、数字kを含むかkで割り切れるn番目の数を見つける必要があります。 kは[2から9]の範囲になります。したがって、nとkがそれぞれ15と3の場合、出力は33になります。数値として[3、6、9、12、13、15、18、21、23、24、27、30、31、33]各要素に数字k=3またはkによる除算が含まれ、このn番目の数値が33である数値。したがって、出力は33です。
kとkの倍数を含む各数値を確認し、n番目の要素が得られるまで数えます。
例
#include<iostream> using namespace std; bool hasDigit(int n, int k) { while (n > 0) { int rem = n % 10; if (rem == k) return true; n = n / 10; } return false; } int countNumbers(int n, int k) { for (int i = k + 1, count = 1; count < n; i++) { if (hasDigit(i, k) || (i % k == 0)) count++; if (count == n) return i; } return -1; } int main() { int n = 10, k = 2; cout << "Last number is " << countNumbers(n, k) << " before that the number contains " << k << " and multiple of " << k; }の倍数が含まれます
出力
Last number is 20 before that the number contains 2 and multiple of 2
-
C ++を使用して、数値の桁の頻度を見つけます。
ここでは、数字の桁の頻度を取得する方法を説明します。数値が12452321、数字D =2のようで、頻度が3であるとします。 この問題を解決するには、数値の最後の桁を取得し、これがdに等しいかどうかを確認します。等しい場合は、カウンターを増やし、数値を10で割って数値を減らします。このプロセスは、数がなくなりました。 例 #include<iostream> using namespace std; int countDigitInNum(long long number, int d) { int count = 0; whil
-
Xで割り切れる最大のK桁の数値のC++プログラム?
2つの整数XとKが与えられます。 Kは整数の桁数です。論理は、Xで割り切れる最大のK桁の数字を見つけることです。 Input: X = 30, K = 3 Output: 980 説明 980は、30で割り切れる最大の3桁の数値です。Kを10の累乗として、1を引くと、最大のK桁の数値が得られます。その後、最大の数値を取得しようとします。これはXで除算されます。 例 #include <iostream> #include <math.h> using namespace std; int main() { int X = 20;