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

Cari jumlah nilai ASCII aksara dalam kedudukan perdana

PHPz
Lepaskan: 2023-09-11 20:29:12
ke hadapan
644 orang telah melayarinya

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
Salin selepas log masuk
In the above string “Hello” the ASCII value of each character is 
H =  72
e = 101
l = 108
l = 108
o = 111
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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)
Salin selepas log masuk
  • length() − Fungsi perpustakaan rentetan ini mengembalikan panjang rentetan input, dengan panjangnya ialah bilangan aksara dalam rentetan.

string_name.length(); 
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

"Sum of ASCII values of characters at prime positions: 320
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

Sum of ASCII values at prime position: 665
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan