特殊な数値の合計桁数を検索するC++コード
整数kが与えられたとしましょう。その番号のすべての桁が同じである場合、その番号を特別な番号と呼びます。たとえば、1、11、1111は特別な番号です。特別な番号は、1、11、111、1111、2、22、222、2222、3、33、333、3333などの順序でカウントされます。 kまでの特殊数の合計桁数を調べる必要があります。 kの値は10000以下です。
したがって、入力がk =9999のような場合、出力は90になります。
ステップ
これを解決するには、次の手順に従います-
s := convert k to string Define an array v of size: := {0, 1, 3, 6, 10} print(((s[0] - '0') - 1) * 10 + v[length of s])
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; #define N 100 void solve(int k) { string s = to_string(k); int v[] = {0, 1, 3, 6, 10}; cout<< ((s[0] - '0') - 1) * 10 + v[s.length()] << endl; } int main() { int k = 9999; solve(k); return 0; }
入力
9999
出力
90
-
C++の数値の階乗で桁の合計を検索します
数値nがあるとすると、そのときの桁の合計を見つけることがタスクです!。 n =5と考えて、次にn! =120。したがって、結果は3になります。 この問題を解決するために、階乗桁を格納するベクトルを作成し、それを1で初期化します。次に、ベクトルに1からnを1つずつ乗算します。次に、ベクトル内のすべての要素を合計し、合計を返します 例 #include<iostream> #include<vector> using namespace std; void vectorMultiply(vector<int> &v, int x) { &n
-
C++でDで割り切れるN桁の数値を検索します
NとDの2つの数があるとします。Dで割り切れるN桁の数を見つける必要があります。Nが3で、Dが5の場合、数は500になります。これは簡単に解決できます。 Dが10でNが1の場合、それは不可能です。 Dを入れて、Dの桁数がmであると仮定し、N – m個の0を付けて、N桁の数でDで割り切れるようにします。 例 #include<iostream> using namespace std; string nDigitDivByD(int n, int d) { string ans = ""; if (d <