C ++で[l、r]の範囲にないASCII値を持つアルファベットをカウントして印刷します
任意の長さの文字列が与えられます。タスクは、カウントを計算し、[l、r]
の範囲外のASCII値を持つ文字列にアルファベットを出力することです。文字A〜ZのASCII値を以下に示します
A | B | C | D | E | F | G | H | 私 | J | K | L | M | N | O | P | Q | R | S |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 |
T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|
84 | 85 | 86 | 87 | 88 | 89 | 90 |
文字a〜zのASCII値を以下に示します
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
9 7 | 9 8 | 9 9 | 10 0 | 10 1 | 10 2 | 10 3 | 10 4 | 10 5 | 10 6 | 10 7 | 10 8 | 10 9 | 11 0 | 11 1 | 11 2 | 11 3 | 11 4 | 11 5 |
t | u | v | w | x | y | z |
---|---|---|---|---|---|---|
116 | 117 | 118 | 119 | 120 | 121 | 122 |
例
Input − String str = “point First = 111, Last = 117 Output − characters not in the given range are: i, n Count is: 2
説明 − iとnは[111、117]の範囲にないため、これらの文字がカウントされます。
Input − String str = “ABCZXY First = 65, Last = 70 Output − characters in the given range are: A, B, C Count is: 3
説明 − Z、X、Yは[65、70]の範囲にないため、これらの文字はカウントされます。
以下のプログラムで使用されているアプローチは次のとおりです
-
文字列、開始値、終了値を入力して範囲を作成し、変数に格納します。たとえば、str。
-
スペースを含む文字列内の文字数に応じて整数値を返すlength()関数を使用して、文字列の長さを計算します。
-
文字数を格納する一時変数を取得し、たとえばmp
などのマップを作成します。 -
iが文字列の長さより小さくなるまで、iから0までループを開始します
-
ループ内で、startがstr [i]以下であり、str[i]がend以下であるかどうかを確認します
-
if内で、mp [str [i]]かどうかを確認します! =1次に、str [i]を出力します。それ以外の場合は、mp[str[i]]を1増やします
-
カウントを返す
-
結果を印刷する
例
#include <iostream> #include <unordered_map> using namespace std; // To count the number of characters whose // ascii value not in range [l, r] int count_non_char(string str, int left, int right){ int count = 0; // using map to print a character only once unordered_map<char, int> m; int len = str.length(); for (int i = 0; i < len; i++) { if (!(left <= str[i] and str[i] <= right)){ count++; if (m[str[i]] != 1){ cout << str[i] << " "; m[str[i]]++; } } } // return the count return count; } // main code int main(){ string str = "tutorialspoint"; int left = 102, right = 111; cout << "Characters and "; cout << "\nand count in the given range is: " << count_non_char(str, left, right); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Characters and and count in the given range is: t u r a s p 8
-
sin(x)およびcos(x)の値を計算するC++プログラム
入力を角度として指定すると、指定した角度に対応するsin(x)とcos(x)の値を計算し、結果を表示することがタスクになります。 Sin(x)の場合 Sin(x)は、x角度の値を計算するために使用される三角関数です。 式 $$ \ sin(x)=\ displaystyle \ sum \ Limits_ {k =0} ^ \ infty \ frac {(-1)^ {k}} {(2k + 1)!} x ^ {2k + 1} $ $ Cos(x)の場合 Cos(x)は、x角度の値を計算するために使用される三角関数です。 式 $$ \ cos(x)=\ displays
-
Cで割り切れる最大の正の整数であり、C ++では[A、B]の範囲にあります
ここで、1つの興味深い問題が発生します。 3つの整数A、B、およびCがあると考えてみましょう。XmodC =0であり、Xが[A、B]の範囲にないように、1つの最小整数Xを見つける必要があります。 A、B、Cの値がそれぞれ5、10、4の場合、Xの値は4になります。解を得るには、次の手順に従う必要があります- 手順- Cが[A、B]の範囲にない場合は、結果としてCを返します それ以外の場合は、Bより大きいCの最初の倍数を取得し、その値を返します 例 #include <iostream> using namespace std; int findMinMumber(