AcWing 4652. 纸张尺寸
原题链接
简单
作者:
我是java同学
,
2023-01-10 10:16:41
,
所有人可见
,
阅读 111
自己想的(好复杂www)
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 10;
int size1[N], size2[N];
int main()
{
char t[2];
cin >> t;
size1[0] = 1189, size2[0] = 841;
for (int i = 0; i < 9; i++)
if (size1[i] > size2[i])
{
size1[i + 1] = size1[i] / 2;
size2[i + 1] = size2[i];
}
else
{
size2[i + 1] = size2[i] / 2;
size1[i + 1] = size1[i];
}
if (size1[t[1] - '0'] > size2[t[1] - '0'])
printf("%d\n%d\n", size1[t[1] - '0'], size2[t[1] - '0']);
else printf("%d\n%d\n", size2[t[1] - '0'], size1[t[1] - '0']);
return 0;
}
参考代码
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
int n;
scanf("A%d", &n);//格式化读入
int x = 1189, y = 841; //x表示大尺寸,y表示小尺寸
while (n -- )
{
x /= 2;
if (x < y) swap(x, y);
}
printf("%d\n%d\n", x, y);
return 0;
}