【寒假每日一题】AcWing 4652. 纸张尺寸

简介: 目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解

一、题目

1、原题链接

4652. 纸张尺寸 - AcWing题库


2、题目描述

在 ISO 国际标准中定义了 A0纸张的大小为 1189mm×841mm,将 A0纸沿长边对折后为 A1 纸,大小为 841mm×594mm,在对折的过程中长度直接取下整(实际裁剪时可能有损耗)。


将 A1纸沿长边对折后为 A2 纸,依此类推。


输入纸张的名称,请输出纸张的大小。


输入格式


输入一行包含一个字符串表示纸张的名称,该名称一定是 A0、A1、A2、A3、A4、A5、A6、A7、A8、A9 之一。


输出格式


输出两行,每行包含一个整数,依次表示长边和短边的长度。


输入样例1:


A0

输出样例1:


1189

841

输入样例2:


A1

输出样例2:


841

594


二、解题报告

1、思路分析

1)因为只有九种情况,所以而且每个输入样例都是以A开头,所以定义一个字符变量就行,没必要弄成字符串,以免后续还需将字符串转为整型。


2)因为是向下取整,所以正好符合整型数据的除法,综上,为输入的字符A定义一个字符变量,来存它的值,为输入的数字定义一个整型变量,来存它的值。


3)由题意可知推出,A几就将A0折叠几次。


4)每次都是折叠最长边,所以,每次折叠完以后,要始终存长边的变量存成两个值中的较大的值。


5)结束循环后,输出长边和短边。


2、时间复杂度

时间复杂度为O(n)


3、代码详解

#include <iostream>

using namespace std;

int main()

{  char A;

  int num;

  cin>>A>>num;

  int l=1189,w=841;

  for(int i=0;i<num;i++){

     l/=2;

     if(l<w){

      swap(l,w);

  }

  }

  cout<<l<<endl<<w;

  return 0;

}

目录
相关文章
蓝桥杯:2021省赛 例题:时间显示
蓝桥杯:2021省赛 例题:时间显示
61 0
|
1月前
|
人工智能
AcWing 271. 杨老师的照相排列
AcWing 271. 杨老师的照相排列
24 0
|
6月前
【编程题-错题集】kotori和气球(组合数学)
【编程题-错题集】kotori和气球(组合数学)
|
6月前
蓝桥杯真题代码记录(纸张尺寸
蓝桥杯真题代码记录(纸张尺寸
37 0
|
Cloud Native
【刷题日记】473. 火柴拼正方形
本次刷题日记的第 52 篇,力扣题为:473. 火柴拼正方形,中等
【洛谷】三连击
P1618 三连击(升级版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
97 0
|
移动开发
【寒假每日一题】AcWing 4261. 孤独的照片(补)
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
87 0