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

C++でASCII値の合計がk未満およびkより大きい単語の数をカウントします


文と数kの文字列strが与えられます。目標は、ASCII値がk未満のin strの数と、ASCII値がkより大きい単語の数を見つけることです。

ASCII −言語の各文字に割り当てられた番号としての一意のコード。

例を挙げて理解しましょう。

入力 − str="これはASCIIです"。 k =300

出力 −ASCII値の合計がk未満の単語数のカウントは−1

ASCII値の合計がkより大きい単語の数は-2です

説明 −単語「is」のASCIIは他の2つより300未満です。

入力 − str =“ set set set”。 k =300

出力 −ASCII値の合計がk未満の単語数の数は− 0

ASCII値の合計がkより大きい単語の数は-3です

説明 −すべての単語は同じで、ASCIIは300を超えています。

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

forループを使用して文字列strをトラバースします。スペースの後の単語ごとに、合計にstr[i]を追加し始めます。これが>kの場合。インクリメントカウント。

  • 文字列をstr、整数をkとします。

  • 関数words_less_greater(string str、int k、int length)は文字列を受け取り、ASCIIがkよりも小さい単語と大きい単語の数を返します。

  • strの各単語のASCIIのtempを0とします。

  • ASCIIがk未満の単語の数については、カウントを0とします。

  • kの合計単語の合計を0とします。

  • forループを使用してstrをトラバースします。

  • スペースstr[i]==‘‘の後の各単語。文字str[i]をtempに追加します。単語の終わりの後、temp

  • 合計のみをインクリメントしない場合。

  • 最後に、カウントには、ASCIIがk未満の単語の数が含まれます。合計-カウントは、ASCIIがkを超える単語になります。

  • 結果を印刷します。

#include <bits/stdc++.h>
using namespace std;
void words_less_greater(string str, int k, int length){
   int temp = 0;
   int total = 0;
   int count = 0;
   for (int i = 0; i < length; ++i){
      if (str[i] == ' '){
         if (temp < k){
            count++;
         }
         temp = 0;
         total++;
      }
      else{
         temp += str[i];
      }
   }
   total++;
   if (temp < k){
      count++;
   }
   cout<<"Count of number of words having sum of ASCII values less than k are: "<< count;
   cout<<"\nCount of number of words having sum of ASCII values greater than k are: "<< total -
   count;
}
int main(){
   string str = "tutorials point";
   int k = 900;
   int length = str.length();
   words_less_greater(str, k, length);
   return 0;
}

出力

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

Count of number of words having sum of ASCII values less than k are: 1
Count of number of words having sum of ASCII values greater than k are: 1

  1. Xとの合計がC++のフィボナッチ数であるノードをカウントします

    ノードの重みを数値として持つ二分木を指定します。目標は、その数がフィボナッチ数であるような重みを持つノードの数を見つけることです。フィボナッチ数列の数は次のとおりです。0、1、1、2、3、5、8、13…。n番目の数はの合計です。 (n-1)番目と(n-2)番目。重みが13の場合、それはフィボナッチ数であるため、ノードがカウントされます。 例 入力 temp=1。値を入力した後に作成されるツリーを以下に示します- 出力 Count the nodes whose sum with X is a Fibonacci number are: 3 説明 we are given with

  2. サイズKで平均がC++のしきい値以上のサブアレイの数

    整数arrの配列と2つの整数kおよびしきい値があるとします。サイズがkで、平均がしきい値以上のサブ配列の数を見つける必要があります。したがって、入力が[2,2,2,2,5,5,5,8]で、k =3、しきい値=4の場合、出力は3になります。サブ配列[2,5,5] 、[5,5,5]と[5,5,8]の平均はそれぞれ4、5、6です。 これを解決するには、次の手順に従います- sum:=0、div:=kおよびn:=配列内の要素の数 set sum:=arrのすべての要素の合計 ret:=0 i:=0およびjがkからn– 1の範囲にある場合、iとjの両方を1増やします =