日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

九度 题目1548:平面上的点

發布時間:2025/6/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 九度 题目1548:平面上的点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:

給定平面上的n個點,任意做一條直線,求至多能有幾個點恰好落在直線上。

輸入:

包含多組測試數據,每組測試數據由一個整數n(0<=n<=100)開始,代表平面上點的個數。
接下去n行每行給出一個點的坐標(x,y),x、y的絕對值均小于等于100。

輸出:

對于每組測試數據,輸出一個整數,表示至多能有幾個點恰好落在直線上。

樣例輸入:
2 0 0 1 1 4 0 0 1 1 2 2 3 6
樣例輸出:
2 3



/** dot.cpp** Created on: 2014年12月31日* Author: judyge*/#include<stdio.h> #include<stdlib.h> #include<iostream> #include<time.h> #define random(x) (rand()%x) using namespace std;bool randbool(){bool flag;int intflag=random(2);if(intflag==0){flag=false;}else{flag=true;}return flag; }float k(float x1,float y1,float x2,float y2) {float ck;if(x2-x1==0){ck=10000.0000;}else{ck=(y2-y1)/(x2-x1);}return ck; }void randxy(float *nx,float *ny) {srand((unsigned)time(0));for(int x=0;x<100;x++){if(randbool()){nx[x]=random(100)/1.0000;}else{nx[x]=-random(100)/1.0000;}}for(int y=0;y<100;y++){if(randbool()){ny[y]=random(100)/1.0000;}else{ny[y]=-random(100)/1.0000;}} }int countk(float *nx1,float *ny1) {int count=0;int tmpcount;for(int i=0;i<100;i++){float mk=k(nx1[i],ny1[i],nx1[i+1],ny1[i+1]);tmpcount=0;for(int j=i+1;j<100;j++){if(k(nx1[i],ny1[i],nx1[j],ny1[j])==mk){tmpcount++;}}if(tmpcount>count){count=tmpcount;}}return count; }int main() {float nx1[100];float ny1[100];randxy(nx1,ny1);// for(int i=0;i<100;i++) // {// cout<<nx1[i]<<','<<ny1[i]<<'\n';// }cout<<countk(nx1,ny1);return 0;}
運行結果

2start:1 finish:1 finish-start:0 runtime:0.000000

總結

以上是生活随笔為你收集整理的九度 题目1548:平面上的点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。