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

WBOY
Lepaskan: 2023-09-02 21:57:07
ke hadapan
1037 orang telah melayarinya

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

Output

1
Salin selepas log masuk
🎜🎜#

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

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!

Label berkaitan:
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