铺地毯
#include <iostream>
#include <cstring>
using namespace std;
const int MAX=10001;
int X1[10001],Y1[10001],X2[10001],Y2[10001];
int main ()
{
int n;
cin>>n;
for(int k=1;k<=n;k++)
{
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
X1[k]=x1,X2[k]=x2+x1,Y1[k]=y1,Y2[k]=y2+y1;
}
int x,y;
cin>>x>>y;
int ans=-1;
for(int i=1;i<=n;i++)
{
if(x>=X1[i]&&x<=X2[i]&&y<=Y2[i]&&y>=Y1[i])
{
ans=i;
}
}
cout <<ans;
return 0;
}
幂次方
#include <iostream>
#include <cmath>
using namespace std;
int jin2[15];
void qs(int n)
{
int y;
for(y=14;y>=0;y--)
{
if(jin2[y]<=n) break;
}
if(y==0) cout <<"2(0)";
else if(y==1) cout <<"2";
else if(y==2) cout <<"2(2)";
else
{
cout <<"2(";
qs(y);
cout <<")";
}
if(n>jin2[y])
{
cout <<"+";
qs(n-jin2[y]);
}
}
int main ()
{
for(int i=0;i<=14;i++)
{
jin2[i]=pow(2,i);
}
int n;
cin>>n;
qs(n);
return 0;
}