Maison  >  Article  >  développement back-end  >  Trouver la somme des valeurs ASCII des caractères en positions premières

Trouver la somme des valeurs ASCII des caractères en positions premières

PHPz
PHPzavant
2023-09-11 20:29:12568parcourir

Trouver la somme des valeurs ASCII des caractères en positions premières

Présentation

Dans ce tutoriel, nous apprendrons le concept du C++ pour trouver la somme des valeurs ASCII des caractères apparaissant dans les positions principales. Les positions premières sont les caractères en position 2, 3, 5 ou tout autre nombre premier.

Les valeurs ASCII (American Standard Code for Information Interchange) sont des valeurs numériques uniques pour les lettres, les lettres, les signes de ponctuation et autres caractères utilisés dans le codage. Il est utilisé pour communiquer avec les ordinateurs, car les ordinateurs ne peuvent pas comprendre le langage humain.

Il existe 128 valeurs ASCII, de 0 à 127. Les lettres majuscules et minuscules ont des valeurs ASCII différentes.

Nous développerons un code C++ pour calculer la valeur ASCII d'un caractère situé en position première. Nous utilisons la fonction length() de la classe string pour stocker la longueur de la chaîne d’entrée.

Exemple 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

Les caractères en première position sont "e", "l", "o". Ajoutez les valeurs ASCII des caractères dans ces positions principales.

Échantillon 2

Input string = “abcd”
Sum = 197

Les principaux caractères de position dans la chaîne d'entrée « abcd » sont « b » et « c ».

The ASCII value of input string characters is as listed:
a = 97
b = 98
c = 99
d = 100

Calculez la somme des valeurs ASCII des caractères à la position principale de la chaîne.

Grammaire

  • sqrt() - Cette fonction de bibliothèque est définie dans la bibliothèque mathématique et elle renvoie la racine carrée du nombre d'entrée

sqrt(n)
  • length() - Cette fonction de bibliothèque de chaînes renvoie la longueur de la chaîne d'entrée, où la longueur est le nombre de caractères dans la chaîne.

string_name.length(); 

Exemple 1

Nous allons implémenter un exemple utilisant le langage de programmation C++ pour calculer la somme des valeurs ASCII des caractères situés aux positions premières dans la chaîne d'entrée. La chaîne d'entrée du code C++ est "Bonjour". Nous trouvons d’abord toutes les positions de nombres premiers de la chaîne d’entrée en appliquant la logique d’identification des nombres premiers. Utilisez une boucle for pour trouver les valeurs ASCII de tous les caractères de la chaîne d'entrée. Additionne les valeurs ASCII des caractères de la chaîne d'entrée aux positions principales.

#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;
}

Sortie

"Sum of ASCII values of characters at prime positions: 320

Exemple 2

se traduit par :

Exemple 2

Ici, nous utilisons une logique différente pour implémenter cet exemple. Nous trouvons d'abord la position première, trouvons ces valeurs ASCII dans la fonction main() et les ajoutons.

#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;
}

Sortie

Sum of ASCII values at prime position: 665

Conclusion

Dans ce tutoriel, nous avons développé du code C++ pour trouver la somme des valeurs ASCII des caractères aux positions premières. Nous avons utilisé la fonction length() de la classe String pour trouver la longueur de la chaîne paramètre. Les valeurs ASCII sont des valeurs prédéterminées de lettres et d'autres caractères utilisés pour aider les ordinateurs à communiquer. Dans ce didacticiel, nous avons implémenté deux exemples avec une logique différente et utilisé certaines fonctions de la bibliothèque C++. La fonction de bibliothèque la plus importante est length(). La fonction de bibliothèque length() renvoie la longueur d'une chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer