第四周第一篇

张开发
2026/6/24 11:37:33 15 分钟阅读
第四周第一篇
本周学习了角度的算法四舍五入函数快排函数桶排方法。第一题移动距离这道题是去年蓝桥杯的第一题。从原点0.0移动到233666求最短的移动距离。移动方案一沿着X轴正方向移动。二沿着一个以原点00为圆心以他的当前位置到原点的距离为半径的圆的圆周移动。#include bits/stdc.h using namespace std; int main(){ int x233,y666; double rsqrt(x*xy*y); double jiaoduacos(x/y); double sumrr*jiaodu; int ansround(sum); coutansendl; return 0; }解题思路只有先沿x轴一直直走到一定程度后沿着以原点为圆心的圆的圆周移动才会有最近 的距离。解题所需的函数应用1角度的算法2,弧度的算法3,四舍五入的函数。1角度的算法jiaoduacos(x/r); jiaoduasin(y/x); jaoduatan2(y/x);2弧度的算法l(弧长r(半径*jiaodu(角度3四舍五入函数round要四舍五入的数第二题欢乐的跳洛谷一个n个元素的整数数组如果数组两个连续元素之间差的绝对值包括[1,n-1]之间的所有整数则称为欢乐的跳数组。例如{1423}符合因为差的绝对值为321快排函数#include bits/stdc.h using namespace std; int main(){ int n; cinn; int mark1; int a[n],b[n]; for(int i1;in;i){ cina[i]; } for(int i1;in;i){ b[i]abs(a[i]-a[i1]; } sort(b1,bn); for(int i1;in;i){ if(b[i]!i){ mark0; break;} } ifmark) coutJollyendl; else coutNot Jollyendl; return 0;}解题思路假设如果数组属于欢乐的跳mark1否则mark0;求出b[i]后对b[i]中的元素进行排序对应i如果每个i对应的都有b[i],b[i]中的元素值与i想等。解题函数快排函数sort数组名数组名数组长度桶排#include bits/stdc.h using namespace std; int main(){ int n,t; cinn; int mark1; int a[n],b[n]{0}; for(int i1;in;i){ cina[i];} for(int i1;in;i){ tabs(a[i]-a[i1]); b[t]1; } for(int i1;in;i){ if(b[t]0){ mark0; break;} } ifmark) coutJollyendl; else coutNot Jollyendl; return 0;}解题思路首先使数组b中的元素全部设为0;求出t代表连续不断的数再令t变成数组b的下标使数组b中的元素变为1如果数组中仍有元素为0则说明这个数组不是欢乐的跳。

更多文章