Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Nombor palindrom ke-n antara digit K dalam C++

Nombor palindrom ke-n antara digit K dalam C++

王林
王林ke hadapan
2023-09-07 22:25:02680semak imbas

Nombor palindrom ke-n antara digit K dalam C++

Untuk mencari nombor palindrom ke-n dengan digit k, kita boleh lelaran daripada nombor digit k pertama sehingga kita menemui nombor palindrom ke-. Kaedah ini tidak cekap. Anda boleh mencubanya sendiri.

Sekarang, mari kita lihat cara yang cekap untuk mencari nombor palindrom ke-n bagi digit k.

Terdapat dua bahagian dalam suatu nombor. Separuh masa pertama adalah sama dengan keterbalikan separuh masa kedua.

Separuh pertama nombor ke-k-digit ialah

Jika k ialah nombor ganjil, ia ialah (n-1)+10k/2, jika tidak ia ialah (n-1)+10k/ 2- 1

Separuh kedua nombor k-digit ke-n akan menjadi penyongsangan separuh pertama nombor itu. Jika k ialah nombor ganjil, keluarkan digit terakhir daripada separuh pertama nombor itu.

Algoritma

  • Memulakan nombor n dan k.
  • Cari panjang separuh pertama palindrom digit k menggunakan nilai k.
  • Separuh pertama nombor palindrom ialah pow(10, panjang) + n - 1.
  • Jika k ialah nombor ganjil, keluarkan digit terakhir daripada separuh pertama palindrom.
  • Terbalikkan separuh masa pertama dan cetak separuh masa kedua.

Implementation

Berikut ialah pelaksanaan algoritma di atas dalam C++

#include<bits/stdc++.h>
using namespace std;
void findNthPalindrome(int n, int k) {
   int temp = (k & 1) ? (k / 2) : (k / 2 - 1);
   int palindrome = (int)pow(10, temp);
   palindrome += n - 1;
   cout << palindrome;
   if (k & 1) {
      palindrome /= 10;
   }
   while (palindrome) {
      cout << palindrome % 10;
      palindrome /= 10;
   }
      cout << endl;
}
int main(){
   int n = 7, k = 8;
   findNthPalindrome(n ,k);
   return 0;
}

Output

Jika anda menjalankan kod di atas, anda akan mendapat keputusan berikut.

rreeee

Atas ialah kandungan terperinci Nombor palindrom ke-n antara digit K dalam C++. 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