On obtient le numéro N pour chaque ligne et les coordonnées des deux points (x1,y1) et (x2,y2). Le but est de trouver le nombre maximum de lignes droites à partir des lignes droites données qui peuvent passer par un seul point de telle sorte qu'aucune ligne droite ne se recouvre et qu'aucune rotation ne soit effectuée.
Nous représenterons la ligne droite comme (paire) m,c) où y=mx+c,m est la pente m=y2-y1/x2-x1
Étant donné c1!=c2, les lignes avec le même m sont parallèle de. Nous calculerons différentes pentes en mètres. Pour une droite verticale, si x1=x2, alors pente = INT_MAX, sinon m.
Comprenons-nous à travers des exemples.
Entrée
Line 1 (x1,y1)=(4,10) (x2,y2)=(2,2) Line 2 (x1,y1)=(2,2) (x2,y2)=(1,1)
Sortie
Maximum lines: 2
Explication - Le nombre de bus est de 2. Les pentes des deux lignes sont différentes.
Entrée
Line 1 (x1,y1)=(1,5) (x2,y2)=(3,2) Line 2 (x1,y1)=(2,7) (x2,y2)=(2,8)
Sortie
Maximum lines: 2
Description - Le nombre de bus est de 2. Les deux ont des pentes différentes.
Les tableaux d'entiers x1[] et x2[] sont utilisés pour stocker les coordonnées des points sur la ligne.
La fonction numLines(int x1[],int y1[], int x2[], int y2[]) compte le nombre de lignes passant par un seul point.
Appliquez la formule pour chaque point dans x1[],y1[],x2[],y2[] pour calculer la pente et utilisez k pour incrémenter le nombre de pentes.
Le tableau s[] stocke la valeur de la pente.
>Renvoie k comme nombre de lignes dans le résultat.
Démo en direct
#include <stdio.h> int numLines(int n, int x1[], int y1[], int x2[], int y2[]){ double s[10]; int k=0; double slope; for (int i = 0; i < n; ++i) { if (x1[i] == x2[i]) slope = 999; else slope = (y2[i] - y1[i]) * 1.0 / (x2[i] - x1[i]) * 1.0; s[k++]=slope; } return k; } int main(){ int n = 2; int x1[] = { 1, 5 }, y1[] = { 3, 2 }; int x2[] = { 2,7 }, y2[] = { 2, 8 }; printf("Maximum lines: %d", numLines(n, x1, y1, x2, y2)); return 0; }
Si nous exécutons le code ci-dessus, il générera la sortie suivante -
Maximum distinct lines passing through a single point : 2
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!