Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Dalam C++, kira bilangan titik integer antara dua titik

Dalam C++, kira bilangan titik integer antara dua titik

WBOY
WBOYke hadapan
2023-09-02 21:57:07983semak imbas

Dalam C++, kira bilangan titik integer antara dua titik

Dalam tutorial ini, kami akan menulis atur cara yang mencari bilangan titik integer antara dua mata yang diberikan.

Bilangan mata antara dua mata yang diberikan ialah gcd(abs(x2), abs(y1-y2)) - 1.

Jika garis penghubung selari dengan paksi-x, bilangan titik integer ialah abs(y1 - y2) - 1.

Jika garis penghubung selari dengan paksi-y, bilangan titik integer ialah abs(x1 - x2) - 1.

Jika koordinat-x bagi dua titik adalah sama, ia adalah selari dengan paksi-x. Jika koordinat-y dua titik adalah sama, ia adalah selari dengan paksi-y.

Mari kita lihat contoh.

Input

pointOne = [1, 5]
pointTwo = [1, 3]

Output

1
🎜🎜#

Awalkan dua mata.

    Periksa sama ada ia selari dengan paksi-x.
  • Jika ia selari dengan paksi-x, gunakan formula abs(y1 - y2) - 1.
  • Periksa sama ada ia selari dengan paksi-y.
  • Jika ia selari dengan paksi-y, gunakan formula abs(x1 - x2) - 1.
  • Jika ia tidak selari dengan mana-mana paksi, gunakan formula gcd(abs(x1-x2), abs(y1- y2)) - 1.
  • Kira hasilnya dan cetaknya.
  • Implementation
Berikut ialah pelaksanaan algoritma di atas dalam C++

rreee

Output#🎜🎜🎜🎜🎜 Jika anda menjalankan Dengan kod di atas, anda akan mendapat keputusan berikut.

#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
   if (b == 0) {
      return a;
   }
   return gcd(b, a % b);
}
int getCount(int pointOne[], int pointTwo[]) {
   if (pointOne[0] == pointTwo[0]) {
      return abs(pointOne[1] - pointTwo[1]) - 1;
   }
   if (pointOne[1] == pointTwo[1]) {
      return abs(pointOne[0] - pointTwo[0]) - 1;
   }
   return gcd(abs(pointOne[0] - pointTwo[0]), abs(pointOne[1] - pointTwo[1])) - 1;
}
int main() {
   int pointOne[] = {1, 3}, pointTwo[] = {10, 12};
   cout << getCount(pointOne, pointTwo) << endl;
   return 0;
}

Atas ialah kandungan terperinci Dalam C++, kira bilangan titik integer antara dua titik. 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
Artikel sebelumnya:Fungsi kuasa dalam C/C++Artikel seterusnya:Fungsi kuasa dalam C/C++