利用python编写一个程序,将要打印的页数作为输入,然后自动生成打印顺序。

输入要求:
一个1-100之间的整数,表示要印刷的小册子的页数(注意页数和纸张的张数不是一个概念,一张纸最多容纳四页) ↵
输出要求:
如果所需的页数不能完全填满一张纸,则打印“空白”一词代替数字。如果某张纸的正面或反面完全为空白,则不要为这张纸的这一面生成输出。输出必须按纸张先后顺序,队一张纸而言,先输出其正面信息,再输出其反面信息。↵
输入输出示例:
若输入“4”,则输出如下↵
第1张纸正面:空白、第1页↵ 第1张纸正面:第4页、第1页↵
第1张纸反面:第2页、空白↵ 第1张纸反面:第2页、第3页↵
第2张纸正面:第14页、第3页↵
第2张纸反面:第4页、第13页↵
第3张纸正面:第12页、第5页↵
第3张纸反面:第6页、第11页↵
第4张纸正面:第10页、第7页↵
第4张纸反面:第8页、第9页↵
 

import math
num=int(input("请输入要打印的页数:"))#输入所需要的打印页数num
num1=int(num%4)                     #计算余下的页数num1
num2=int(num/4)                      #计算所需要的打印纸张数num2
num3=math.ceil(num/4)                 #利用ceil函数计算出准确的纸张数量
if num==1:                            #当打印页数为1时,不能输出
    print("错误!")
elif num==2:                           #当打印页数为2时
    print("第1张纸正面:空白、第1页")
    print("第1张纸反面:空白、第2页")
elif num==3:                          #当打印页数为3时
    print("第1张纸正面:空白、第1页")
    print("第1张纸反面:第2页、第3页")
else:
    if num1==0:                       #当打印页数为四的倍数时
        j=1
        for i in range(1,num2+1):
          print(f'第{i}张纸正面:第{j}页、第{num}页')
          print(f'第{i}张纸反面:第{j+1}页、第{num-1}页')
          num=num-2
          j=j+2 
    elif num1==1:                      #当余数为1,有三个空白页时 
          m=5
          print(f'第1张纸正面:第{num}页、第1页\n第1张纸反面:第2页、空白')
          print("第2张纸正面:空白、第3页\n第2张纸反面:第4页、空白")
          for k in range(3,num3+1):
              print(f'第{k}张纸正面:第{m}页、第{num-1}页')
              print(f'第{k}张纸反面:第{m+1}页、第{num-2}页')
              num=num-2
              m=m+2
    elif num1==2:                      #当余数为2,有两个空白页时
          n=3
          print(f'第1张纸正面:空白、第1页\n第1张纸反面:第2页、空白')
          for g in range(2,num3+1):
              print(f'第{g}张纸正面:第{n}页、第{num}页')
              print(f'第{g}张纸反面:第{n+1}页、第{num-1}页')
              num=num-2
              n=n+2
    elif num1==3:                     #当余数为三,有一个空白页时
          x=3
          print(f'第1张纸正面:空白、第1页\n第1张纸反面:第2页、第{num}页')
          for l in range(2,num3+1):
            print(f'第{l}张纸正面:第{x}页、第{num-1}页')
            print(f'第{l}张纸正面:第{x+1}页、第{num-2}页')
            num=num-2
            x=x+2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值