8.27 完善程序练习
(1)优美的进制)问题:给出整数 n;k 进制是优美的,当且仅当 n 在 k 进
制下至少有两位,且每一位的数值都不同。求对于给定的 n,(有哪些进制是优美
的,不存在则输出-1。
试补全程序。
1 #include <bits/stdc++.h>
2 using namespace std;
3 const int MAXN = 100000;
4 int n;
5 int vis[MAXN], a[MAXN];
6 vector ans;
7 int check(int k) {
8 int x = n, top = 0;
9 for (int i = 0; i <= k; i++) vis[i] = 0;
10 while (①) {
11 a[++top] = ②;
12 x = ③;
13 }
14 if (top < 2)
15 return 0;
16 for (int i = 1; i <= top; i++) {
17 if (④)
18 return 0;
19 vis[a[i]] = 1;
20 }
21 return 1;
22 }
23 int main() {
24 cin >> n;
25 for (int i = ⑤; i <= n; i++) {
26 if (check(i))
27 ans.push_back(i);
28 }
29 if (ans.empty()) {
30 cout << -1;
31 }
32 for (int i = 0; i < ans.size(); i++) 32
33 cout << ans[i] << " "; 33
34 return 0;
35 }
①处应填( )
A. x > 0
2
B. x > 1
C. x / k > 0
D. x / k > 1
②处应填( )
A. x / k
B. x % k
C. (x - 1) / k + 1
D. (x – 1) % k + 1
③处应填( )
A. x / k
B. x % k
C. (x - 1) / k + 1
D. (x – 1) % k + 1
④处应填( )
A. vis[i] == 1
B. vis[a[i]] == 0
C. vis[i] == 0
D. vis[a[i]] == 1
⑤处应填( )
A. 1
B. n - 1
C. 2
D. 0
(2)(好运的日期)一个日期可以用 x 年 y 月 z 日来表示。我们称一个日期
是好运的,当且仅当 xy(w-z+1)为质数,其中 w 为 x 年 y 月的总天数。输入
x,y,z,判断其对应的日期是否好运。保证 x 是不超过 2024 的正整数,y 是不
超过 12 的正整数,x,y,z 可以构成一个合法的日期。
试补全线性筛法算法,空间限制 512MiB。
1 #include <bits/stdc++.h>
2 using namespace std;
3
4 const int MAXW = ①;
5 const int days[13] = {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
6 int prime[MAXW], cnt;
7 bool not_prime[MAXW];
8
9 void linear_prime(int n) {
10 --n;
11 not_prime[0] = not_prime[1] = true;
12 for(int i = 2; i <= n; i++) {
13 if(not_prime[i] == false)
14 prime[++cnt]=i;
3
15 for(int j = 1; ②; j++) {
16 not_prime[i * prime[j]] = 1;
17 if(i % prime[j] == 0)
18 ③;
19 }
20 }
21 }
22 bool check(int n) {
23 return ④;
24 }
25
26 int main() {
27 linear_prime(MAXW);
28 int x, y, z, w;
29 cin >> x >>y >> z;
30 if(y == ⑤)
31 w = check(x) ? 29 : 28;
32 else
33 w = days[y];
34 if(not_prime[x * y * (w – z + 1)])
35 cout << "unlucky" << endl;
36 else
37 cout << "lucky" << endl;
38 return 0;
39 }
①处可以填( )
A. 753005
B. 10000000000
C. 725041
D. 2024
②处应填( )
A. j <= cnt
B. i * prime[j] <= n
C. (j <= cnt) && (i * prime[j] <= n)
D. (i <= cnt) && (prime[i] * prime[j] <= n)
41. ③处应填( )
A. not_prime[i] = true
B. return
C. continue
D. break
42. ④处应填( )。
A. n % 4 == 0
B. (n % 400 == 0 || (n % 4== 0 && n % 100 != 0))
4
C. (n % 4 == 0 && n % 100 != 0)
D. (n % 100 == 0 || (n % 4 == 0 && n % 100 != 0))
43. ⑤处应填( )。
A. 1
B. 7
C. 8
D. 2
问题:给出整数 n;k 进制是优美的,当且仅当 n 在 k 进 制下至少有两位,且每一位的数值都不同。求对于给定的 n
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
悬赏问题
- ¥15 fluentmeshing
- ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
- ¥15 盘古气象大模型调用(python)
- ¥15 传人记程序做的plc 485从机程序该如何写
- ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
- ¥50 libwebsockets 如何添加其他socket事件回调
- ¥50 实现画布拖拽算子排布,通过flink实现算子编排计算,请提供思路
- ¥15 esium自定义材质拉伸问题
- ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
- ¥15 eNSP中防火墙的使用