Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cari jumlah nilai ASCII aksara dalam kedudukan perdana

Cari jumlah nilai ASCII aksara dalam kedudukan perdana

PHPz
PHPzke hadapan
2023-09-11 20:29:12618semak imbas

Cari jumlah nilai ASCII aksara dalam kedudukan perdana

Pengenalan

Dalam tutorial ini, kita akan mempelajari konsep C++ untuk mencari jumlah nilai ASCII aksara yang muncul dalam kedudukan utama. Kedudukan perdana ialah aksara dalam kedudukan 2, 3, 5 atau mana-mana nombor perdana yang lain.

Nilai ASCII (American Standard Code for Information Interchange) adalah nilai berangka unik untuk huruf, huruf, tanda baca dan aksara lain yang digunakan dalam pengekodan. Ia digunakan untuk berkomunikasi dengan komputer kerana komputer tidak dapat memahami bahasa manusia.

Terdapat 128 nilai ASCII, dari 0 hingga 127. Huruf besar dan huruf kecil mempunyai nilai ASCII yang berbeza.

Kami akan membangunkan kod C++ untuk mengira nilai ASCII bagi aksara yang terletak pada kedudukan utama. Kami menggunakan fungsi length() kelas rentetan untuk menyimpan panjang rentetan input.

Contoh 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

Watak-watak dalam kedudukan utama ialah "e", "l", "o". Tambahkan nilai ASCII bagi aksara dalam kedudukan utama ini.

Sampel 2

Input string = “abcd”
Sum = 197

Watak kedudukan utama dalam rentetan input "abcd" ialah "b" dan "c".

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

Kira jumlah nilai ASCII aksara pada kedudukan utama dalam rentetan.

Tatabahasa

  • sqrt() − Fungsi perpustakaan ini ditakrifkan dalam perpustakaan matematik dan ia mengembalikan punca kuasa dua nombor input

sqrt(n)
  • length() − Fungsi perpustakaan rentetan ini mengembalikan panjang rentetan input, dengan panjangnya ialah bilangan aksara dalam rentetan.

string_name.length(); 

Contoh 1

Kami akan melaksanakan contoh menggunakan bahasa pengaturcaraan C++ untuk mengira jumlah nilai ASCII aksara yang terletak pada kedudukan utama dalam rentetan input. Rentetan input kod C++ ialah "Hello". Kami mula-mula mencari semua kedudukan nombor perdana rentetan input dengan menggunakan logik mengenal pasti nombor perdana. Gunakan gelung for untuk mencari nilai ASCII semua aksara rentetan input. Menjumlahkan nilai ASCII aksara rentetan input pada kedudukan utama.

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

Output

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

Contoh 2

diterjemahkan sebagai:

Contoh 2

Di sini, kami menggunakan logik yang berbeza untuk melaksanakan contoh ini. Kami mula-mula mencari kedudukan utama, cari nilai ASCII ini dalam fungsi utama() dan tambahkannya.

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

Output

Sum of ASCII values at prime position: 665

Kesimpulan

Dalam tutorial ini, kami telah membangunkan kod C++ untuk mencari jumlah nilai ASCII aksara pada kedudukan utama. Kami menggunakan fungsi length() kelas String untuk mencari panjang rentetan parameter. Nilai ASCII ialah nilai huruf yang telah ditetapkan dan aksara lain yang digunakan untuk membantu komputer berkomunikasi. Dalam tutorial ini, kami melaksanakan dua contoh dengan logik yang berbeza dan menggunakan beberapa fungsi perpustakaan C++. Fungsi perpustakaan yang paling penting ialah length(). Fungsi perpustakaan length() mengembalikan panjang rentetan.

Atas ialah kandungan terperinci Cari jumlah nilai ASCII aksara dalam kedudukan perdana. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam