您的位置:首页 > 其它

UVa 637 - Booklet Printing

2016-04-10 18:57 459 查看
题目:模拟输出n页书的装订打印状态。

分析:模拟。页数为(n+3)/ 4,仅仅有n不超过半篇时会输出半篇。

说明:好多曾经做过的题目(⊙_⊙)。

#include <cstdlib>
#include <cstring>
#include <cstdio>

int book[30][4];

int main()
{
int n;
while (~scanf("%d",&n) && n) {
int page = (n+3)/4;
memset(book ,0 ,sizeof(book));
int count = 1;
for (int i = 1 ; i <= page ; ++ i) {
book[i][1] = count ++;
if (count > n) break;
book[i][2] = count ++;
if (count > n) break;
}
if (count <= n)
for (int i = page ; i >= 1 ; -- i) {
book[i][3] = count ++;
if (count > n) break;
book[i][0] = count ++;
if (count > n) break;
}

printf("Printing order for %d pages:\n",n);
for (int i = 1 ; i <= page ; ++ i) {
if (book[i][0] || book[i][1]) {
printf("Sheet %d, front: ",i);
if (book[i][0]) printf("%d, ",book[i][0]);
else printf("Blank, ");
if (book[i][1]) printf("%d\n",book[i][1]);
else printf("Blank\n");
}
if (book[i][2] || book[i][3]) {
printf("Sheet %d, back : ",i);
if (book[i][2]) printf("%d, ",book[i][2]);
else printf("Blank, ");
if (book[i][3]) printf("%d\n",book[i][3]);
else printf("Blank\n");
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: