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

ASCII値がC++で素数である文字列内の文字をカウントします


大文字と小文字の両方を含む任意の長さの文字列が与えられます。タスクは、ASCII値が素数である文字の数を計算することです。

大文字[A-Z]のASCII値は65から90で始まり、小文字[a-z]は97から122で始まります。

Input string str = ‘Aebg’
Output count is: 2

説明 − AのASCII値は65であり、素数ではないためカウントされません。eは素数であるためカウントされる101です。bは66であり、素数ではないためカウントされません。カウントされ、gは素数である103であるため、カウントされます。したがって、合計で2つの文字がプライムASCII値になります。

Input − string str = ‘GOXFH’
Output − count is: 2

説明 − GのASCII値は素数であるためカウントされる71、Oは素数であるためカウントされる79、Xは素数ではないためカウントされない88です。 、Fは素数ではないのでカウントされない70であり、Hは素数ではないのでカウントされない72です。したがって、合計で2つの文字がプライムASCII値になります。

以下のプログラムで使用されているアプローチは次のとおりです

  • 文字列を入力し、変数に格納します。たとえば、str

  • スペースを含む文字列内の文字数に応じて整数値を返すlength()関数を使用して、文字列strの長さを計算します。

  • 決定されたすべての文字に対してチェックするプライム値を計算する関数を宣言します

  • iから0まで、文字列の長さまでループをトラバースします

  • ループ内で、トラバースされた文字のASCII値が素数であるかどうかを確認します。素数の場合は、カウントを1増やします。それ以外の場合は、値を増やしません。

  • countの合計値を返します

  • 結果を印刷します。

#include <iostream>
#include <vector>
using namespace std;
#define max_val 257
// Function to find prime characters in the string
int countprime(string str){
   // Using SIEVE for finding the prime numbers less
   // than Equal to 'max_val'
   // A Boolean array "prime[0..n]". A
   // value in prime[i] will finally be false
   // if i is Not a prime, else true.
   vector<bool> prime(max_val + 1, true);
   // 0 and 1 are not primes
   prime[0] = false;
   prime[1] = false;
   for (int p = 2; p * p <= max_val; p++){
      // If prime[p] is not changed, then
      // it is a prime
      if (prime[p] == true) {
         // Upfating the all multiples of p
         for (int i = p * 2; i <= max_val; i += p){
            prime[i] = false;
         }
      }
   }
   int result = 0;
   // traversing the whole string.
   for (int i = 0; i < str.length(); ++i){
      if (prime[int(str[i])]){
         result++;
      }
   }
   return result;
}
// main function
int main(){
   string str = "tutorialspoint";
   // print required answer
   cout <<"count is: "<< countprime(str);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

count is:1

  1. ASCII値がC++のNの数字で形成できるアルファベットの数

    入力として正の数を含む長い変数が与えられます。目標は、ASCII値の数字が数字の数字に含まれているアルファベットの数を見つけることです。 数字から任意の2桁を選び、英語のアルファベットのASCII値を形成するように配置します。 A-ZのASCII値は65から90で始まり、a-zのASCII値は97から122で始まります。 選ばれる総数は26+26=52になります。 例を挙げて理解しましょう。 例 入力- N_digits =163465 出力- Nの数字でASCII値を形成できるアルファベットの数は次のとおりです。2 説明- 163465に存在するASCII値は65と66のみで

  2. 加重文字列にC++の母音が含まれているツリーのノードをカウントします

    ノードの重みを文字列として持つ二分木が与えられます。目標は、文字列に母音が含まれるような重みを持つノードの数を見つけることです。重みが「aer」の場合、母音「a」と「e」があるため、ノードがカウントされます。 例 入力 値を入力した後に作成されるツリーを以下に示します- 出力 Count the nodes of the tree whose weighted string contains a vowel are: 5 説明 ツリーノードと各ノードに関連付けられた文字列の重みが与えられます。次に、ノードの文字列に母音が含まれているかどうかを確認します。 ノード 重量 母音 は