//poj 1314
//sep9
#include <iostream>
using namespace std;
const int MAXN=128;
struct Page{
int front1,front2;
int back1,back2;
}pages[MAXN];
int n;
void print(int x)
{
if(x>n) printf(" Blank");
else printf(" %d",x);
}
int main()
{
while(scanf("%d",&n)==1&&n){
int num=n%4==0?n/4:n/4+1;
printf("Printing order for %d pages:\n",n);
int cnt=0;
for(int i=0;i<num;++i){
pages[i].front2=++cnt;
pages[i].back1=++cnt;
}
for(int i=num-1;i>=0;--i){
pages[i].back2=++cnt;
pages[i].front1=++cnt;
}
for(int i=0;i<num;++i){
printf("Sheet %d, front:",i+1);
print(pages[i].front1);
printf(",");
print(pages[i].front2);
puts("");
if(pages[i].back1>n&&pages[i].back2>n)
continue;
printf("Sheet %d, back :",i+1);
print(pages[i].back1);
printf(",");
print(pages[i].back2);
puts("");
}
}
return 0;
}
poj 1313 Booklet Printing 模拟水题
本文介绍了一个解决POJ1314问题的C++程序,该程序根据输入的页面总数,计算并输出正确的打印顺序。通过定义Page结构体来存储每一页的前后两面所对应的页面编号,利用循环结构实现对偶数页和奇数页的正确分配。
摘要由CSDN通过智能技术生成