零基础学做网站页,利津网站定制,电视剧排行榜百度搜索风云榜,网站品牌推广最短距离 查看题解 查看答案 题目描述 Time Limit: 1000 ms Memory Limit: 256 mb 小王和小明是好朋友#xff0c;两人最开始各有一个初始位置 p 和一个恒定速度 v#xff0c;从0时刻起开始#xff0c;他们从初始位置以恒定速度开始行走#xff0c;请告诉我行走过程中两…最短距离查看题解 查看答案题目描述Time Limit: 1000 msMemory Limit: 256 mb小王和小明是好朋友两人最开始各有一个初始位置 p 和一个恒定速度 v从0时刻起开始他们从初始位置以恒定速度开始行走请告诉我行走过程中两人的最短距离是多少。输入输出格式输入描述:第一行输入T代表测试样例数目。 对于每个样例 第一行包含四个整数 x1y1x2y2表示人的起点x1y1x2y2。 第二行是四个整数u1v1u2v2表示人的初始速度u1v1u2v2分别为x轴和y轴方向的分速度。 T 1000 , x1y1x2y2u1v1u2v2的绝对值不大于1000。输出描述:对于每个样例输出一行。Case i: d。i 代表案例编号d代表答案四舍五入到小数点后6位。输入输出样例输入样例#:5 1 1 2 2 1 1 2 2 1 1 2 2 1 1 -1 -1 1 1 2 2 0 1 0 -1 1 1 1 1 1 1 2 2 0 0 0 1 0 1 1 0输出样例#:Case 1: 1.414214 Case 2: 0.000000 Case 3: 1.000000 Case 4: 0.000000 Case 5: 0.707107题目来源中南大学机试题代码参考#includebits/stdc.h using namespace std; struct s{ double x; double y; double u; double v; }s1, s2; int fun(int n){ if(n 2){ return 1; } for(int i 2; i n; i ){ if(n % i 0){ return 0; } } return 1; } int fun2(int n, int m){//有几个 int count 0, temp 1; while(pow(m, temp) n){ int num n / pow(m, temp); count num; temp ; } return count; } int main(){ int n; int i 1; cinn; while(n --){ cins1.xs1.ys2.xs2.y; cins1.us1.vs2.us2.v; int t 0; // x1 u1 * t y1 v1 * t // x2 u2 * t y2 v2 * t double dx s1.x - s2.x; double du s1.u - s2.u; double dy s1.y - s2.y; double dv s1.v - s2.v; double distance sqrt(dx * dx dy * dy); // (dx du * t) (dy dv * t) // (du2 dv2)t2 2(dx * du dy * dv) * t dx2 dy2 double a du * du dv * dv; double b 2 * (dx * du dy * dv); double c dx * dx dy * dy; double temp (-1) * b / (2 * a); if(temp 0){ printf(Case %d: %.6f, i, distance); coutendl; i; } else { double min sqrt(a * temp * temp b * temp c); printf(Case %d: %.6f, i, min); coutendl; i; } } }数楼梯已解决查看题解 查看答案题目描述Time Limit: 1000 msMemory Limit: 256 mb楼梯有 N 阶上楼可以一步上一阶也可以一步上二阶。编一个程序计算共有多少种不同的走法。输入输出格式输入描述:一个数字N1N1000楼梯数。输出描述:输出走的方式总数。输入输出样例输入样例#:4输出样例#:5题目来源中国海洋大学机试题代码参考#includebits/stdc.h using namespace std; string num[1001]; string add(string s1, string s2){ reverse(s1.begin(), s1.end()); reverse(s2.begin(), s2.end()); while(s2.size() s1.size()){//先拼接0 s2 s2 0; // 1234 4321 // 12 2100 } int temp 0, temp1 0, temp2 0; string result ; for(int i 0; i s1.size(); i ){ int num1 s1[i] - 0; int num2 s2[i] - 0; temp num1 num2 temp1;//和 temp1 temp / 10;//进位 temp2 temp % 10;//尾数 result char(temp2 0) result; } if(temp1){//有进位 result char(temp1 0) result; } return result; } int main(){ num[1] 1; num[2] 2; num[3] 3; for(int i 4; i 1000; i ){ num[i] add(num[i - 1], num[i - 2]); } int n; cinn; coutnum[n]endl; }