C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

電話番号をチェックするC++コードは数値文字列から形成できます


n桁の文字列Sがあるとします。正確に11桁の数字は、「8」で始まる場合は電話番号です。 1回の操作で、Sから1桁を削除できます。文字列を有効な電話番号にできるかどうかを確認する必要があります。

したがって、入力がS ="5818005553985"の場合、11文字で最初の桁が8の文字列 "8005553985"を作成できるため、出力はTrueになります。

ステップ

これを解決するには、次の手順に従います-

m := size of S
insert '8' at the end of S
if if location of 8 <= (m - 11), then:
   return true
return false

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
bool solve(string S){
   int m = S.size();
   S.push_back('8');
   if ((int(S.find('8')) <= (m - 11)))
      return true;
   return false;
}
int main(){
   string S = "5818005553985";
   cout << solve(S) << endl;
}

入力

"5818005553985"

出力

1

  1. 数値がC++で2つの三角数の合計として表現できるかどうかを確認します

    このセクションでは、1つの数を2つの三角数の合計として表現できるかどうかを確認します。三角数は以下のようになります- 例から、1、3、6、10はいくつかの三角数であることがわかります。数N(たとえば16)を2つの三角数(6、10)の合計として表す必要があります。 アプローチは非常に簡単です。 N未満のすべての三角数を取得する必要があります。これらの値からセットを作成します。ここで、集合からXと言う数を取り、N – Xが集合に存在するかどうかを確認する必要があります。そうすると、Xは2つの三角数の合計として表すことができます。 例 #include <iostream> #

  2. 入力がC++で数値かどうかを確認するにはどうすればよいですか?

    ここでは、特定の入力が数値文字列であるか通常の文字列であるかを確認する方法を説明します。数値文字列は、0〜9の範囲のすべての文字を保持します。解決策は非常に単純です。各文字を1つずつ調べて、数値かどうかを確認します。数値の場合は次を指し、そうでない場合はfalse値を返します。 例 #include <iostream> using namespace std; bool isNumeric(string str) {    for (int i = 0; i < str.length(); i++)       if (is