0%

W1053「无圆数」

1 Description

派派最近没能抽到喜欢的卡,他变成了一个《原神》黑子。现在他很讨厌看到圆。

尤其是数字里的圆。

通过问题 W1045 - 我超,原,你已经知道数字 0,4,6,8,9 包含圆。

100

并称呼这个新的计数系统叫做「无圆数」。现在他想将他所能看到的所有数字都变为「无圆数」,即,将所有十进制的正整数向所有「无圆数」进行映射。但是他正忙着玩《崩坏:星穹铁道》,并希望你能慷慨地帮助他解决这个小小的问题。

2 Input

输入仅包含一个正整数 x,表示派派想让你转换的数字。

这里「转换」的意思是,将所有「无圆数」列出后,排序后第 x 个「无圆数」是什么?

2.1 数据范围

  • \(1≤x≤77777777777777777\)(一共 \(17\)\(7\))。

3 Output

输出 x 对应的「无圆数」。

4 样例

Sample Input 1

1
10
Sample Output 1
1
17
Sample Input 2
1
100
Sample Output 2
1
357
Sample Input 3
1
77777777777777777
Sample Output 3
1
7777777
## 5 Hint

100\(10\) 个「无圆数」是:\(1,2,3,5,7,11,12,13,15,17\)

模拟五进制即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int a[] = {1, 2, 3, 5, 7};
int w[50];
int main()
{
ios::sync_with_stdio(0);
ll x;
cin >> x;
int i = 0;
while (x)
{
x--;//卡在这里了(why)
int y = x % 5;
w[++i] = a[y];
x /= 5;
}
for (int j = i; i >= 1; i--)
cout << w[i];
}
  • 本文作者: FXJFXJ
  • 本文链接: https://fxj.wiki/posts/a9874a5e/
  • 版权声明: 本博客所有文章除特别声明外,均采用 ZERO 许可协议。转载请注明出处!