查詢位於素數位置的字元的ASCII值之和
介紹
在本教程中,我們將學習C++的概念,以查詢位於素數位置的字元的ASCII值之和。素數位置是指位置為2、3、5或其他素數的字元。
ASCII(美國資訊交換標準程式碼)值為字母、數字、標點符號和其他字元在編碼中使用的唯一數值。它用於與計算機通訊,因為計算機不理解人類語言。
共有128個ASCII值,從0到127。大寫字母和小寫字母具有不同的ASCII值。
我們將開發一個C++程式碼來計算位於素數位置的字元的ASCII值。我們使用字串類的length()函式來儲存輸入字串的長度。
示例1
There is an string = “Hello” Sum of prime position ASCII value characters = 320
In the above string “Hello” the ASCII value of each character is H = 72 e = 101 l = 108 l = 108 o = 111
位於素數位置的字元是“e”、“l”、“o”。新增這些素數位置字元的ASCII值。
示例2
Input string = “abcd” Sum = 197
輸入字串“abcd”中位於素數位置的字元是“b”和“c”。
The ASCII value of input string characters is as listed: a = 97 b = 98 c = 99 d = 100
計算字串中位於素數位置的字元的ASCII值之和。
語法
sqrt() − 此庫函式在math庫中定義,它返回輸入數字的平方根。
sqrt(n)
length() − 此字串類庫函式返回輸入字串的長度,長度是字串中字元的數量。
string_name.length();
示例1
我們將使用C++程式語言實現一個示例,以計算輸入字串中位於素數位置的字元的ASCII值之和。C++程式碼輸入字串為“Hello”。我們首先透過應用識別素數的邏輯來查詢輸入字串的所有素數位置。使用for迴圈查詢輸入字串所有字元的ASCII值。將位於素數位置的輸入字串字元的ASCII值相加。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// User-defined function to find the prime positions
bool find_prime(int p){
if (p <= 1) {
return false;
}
// loop to check the prime number
for (int x = 2; x*x <= p; x++) {
if (p % x == 0) {
return false;
}
}
return true;
}
// user-defined function to sum ASCII values of the prime position characters
int sum_of_primes(string st) {
int sum1 = 0;
//variable to store the input string length.
int p = st.length();
vector<bool> primes(p+1, false);
primes[2] = true;
for (int x = 3; x <= p; x += 2) {
primes[x] = find_prime(x);
}
for (int x = 2; x <= p; x++){
if (primes[x] && x <= p){
sum1 += int(st[x-1]);
}
}
return sum1;
}
// controlling code
int main(){
string st = "Hello";
int sum1 = sum_of_primes(st);
cout << "Sum of ASCII values of characters at prime positions: " << sum1 << endl;
return 0;
}
輸出
"Sum of ASCII values of characters at prime positions: 320
示例2
在這裡,我們使用不同的邏輯來實現此示例。我們首先找到素數位置,然後在main()中找到這些ASCII值並將其相加。
#include <iostream>
#include <cmath>
using namespace std;
bool isNumPrime(int n) {
if (n < 2)
return false;
for (int x = 2; x <= sqrt(n); ++x) {
if (n % x == 0)
return false;
}
return true;
}
int main() {
string str = "tutorialspoint";
//std::cout << "Enter a string: ";
int s = 0;
for (size_t x = 0; x < str.length(); ++x) {
if (isNumPrime(x + 1)) {
s += static_cast<int>(str[x]);
}
}
cout << "Sum of ASCII values at prime positions: " << s << endl;
return 0;
}
輸出
Sum of ASCII values at prime position: 665
結論
在本教程中,我們開發了C++程式碼來查詢素數位置字元的ASCII值之和。我們使用字串類的length()函式來查詢引數字串的長度。ASCII值是字母和其他字元的預定值,以幫助計算機進行通訊。在本教程中,我們使用不同的邏輯實現了兩個示例,並使用了一些C++庫函式。使用的最重要的庫函式是length()。此length()庫函式返回字串的長度。
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP