第一题:x是题目的D,resx 是M resy 是N,n是10000 就是设备台数,这个题的意思就是求一个最逼近D的分数(分母小于10000)
#include<bits/stdc++.h>
using namespace std;
int main()
{
double x;
int n;
cin>>n>>x;
double res;
int resx,resy;
for(int i=1;i<=n;i++)
{
double y=i*x;
double fm=i,fz=(int)y;
if((int)fz<=n&&abs(res-x)>abs(x-fz/fm))
{
res=fz/fm;
resx=(int)fz;
resy=(int)fm;
}
fz=fz+1;
if((int)fz<=n&&abs(res-x)>abs(x-fz/fm))
{
res=fz/fm;
resx=(int)fz;
resy=(int)fm;
}
}
cout<<resx<<" "<<resy;
}
第二题:字符串左旋转 https://www.jianshu.com/p/25570d8131ec
第三题:迪杰斯特拉算法 求最短路径