【寒假每日一题】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;

}

目录
相关文章
|
7月前
|
Java
leetcode-452:用最少数量的箭引爆气球
leetcode-452:用最少数量的箭引爆气球
72 0
|
2月前
|
算法
AcWing 1343. 挤牛奶(每日一题)
AcWing 1343. 挤牛奶(每日一题)
AcWing 4261. 孤独的照片(每日一题)
AcWing 4261. 孤独的照片(每日一题)
|
6月前
|
C语言
C语言----要喝10升水才能解渴,但现在只有一个深 h 厘米,底面半径是 r 厘米的水杯,牛牛最少要喝多少杯水才能解渴
C语言----要喝10升水才能解渴,但现在只有一个深 h 厘米,底面半径是 r 厘米的水杯,牛牛最少要喝多少杯水才能解渴
|
7月前
蓝桥杯真题代码记录(纸张尺寸
蓝桥杯真题代码记录(纸张尺寸
43 0
【AcWing每日一题】4261. 孤独的照片
【AcWing每日一题】4261. 孤独的照片
76 0
leetcode 452用最少数量的箭引爆气球
leetcode 452用最少数量的箭引爆气球
91 0
leetcode 452用最少数量的箭引爆气球
|
移动开发
【寒假每日一题】AcWing 4261. 孤独的照片(补)
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
90 0