题意:模拟一个网页的跳转按钮,当前页为p,左右显示的页号为p-k,p+k,当前页为1时没有左箭头,当前页为n时没有右箭头,显示的页号必须合法(在1~n之间)
分析:按照条件直接做。这种题最主要的就是细心。
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#define min(a,b) a<b?a:b
#define INF 1000000007
using namespace std;
int n,p,k;
int main()
{
while(cin>>n>>p>>k){
int l=p-k;
int r=p+k;
if(l<=0) l=1;
if(r>n) r=n;
{
if(l!=1) printf("<< ");
for(int i=l;i<=r;i++){
if(i==p) {
if(i!=r) printf("(%d) ",i);
else printf("(%d)",i);
}
else{
if(i!=r) printf("%d ",i);
else cout<<i;
}
}
if(r!=n) printf(" >>\n");
else printf("\n");
}
}
}