30,229
社区成员




本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。
这个法术需要用到他手中的 49 张法术符,上面分别写着 1 至 49这 49 个数字。法术一共持续 7 周,每天小明都要使用一张法术符,法术符不能重复使用。
每周,小明施展法术产生的能量为这周 77 张法术符上数字的中位数。法术 施展完 7 周后,求雨将获得成功,降雨量为 7 周能量的中位数。
由于干旱太久,小明希望这次求雨的降雨量尽可能大,请大最大值是多少?
代码:
/*每周的能量为该周符数的中位数
降雨量为7周能量的中位数,即第4周的中位数
求最大降雨量,只需使第4周的中位数尽可能的大
即使最后3周的每周的后4天和第4周的后3天为极大值,可得解
*/
#include <iostream>
using namespace std;
int main()
{
cout<<49-15<<endl;
return 0;
解析:这个数必然是第四周中位数,然后减去本周的后3位数,最后减去3*4,也就是后3周的情况!!!
小王子有一天迷上了排队的游戏,桌子上有标号为 1-10的 10 个玩具,现在小王子将他们排成一列,可小王子还是太小了,他不确定他到底想把那个玩具摆在哪里,直到最后才能排成一条直线,求玩具的编号。已知他排了 M 次,每次都是选取标号为 X 个放到最前面,求每次排完后玩具的编号序列。
要求一:采用单链表解决
第一行是一个整数 M,表示小王子排玩具的次数。
随后 M 行每行包含一个整数 X,表示小王子要把编号为 X 的玩具放在最前面。
共 M 行,第 i行输出小王子第 i 次排完序后玩具的编号序列。
#include<stdio.h>
int main() {
int a[11] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, m, n, k;
scanf("%d", &m);
for (int i = 0; i < m; i++) {
scanf("%d", &n);
for (int j = 1; j < 11; j++) {
if (a[j] == n) {
for (k = j; k > 1; k--) {
a[k] = a[k - 1];
}
break;
}
}
a[1] = n;
for (int j = 1; j < 11; j++) {
printf("%-4d", a[j]);
}
printf("\n");
}
return 0;
}
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝有一条玩具蛇,一共有 16 节,上面标着数字 1 至 16。每一节都是一个正方形的形状。相邻的两节可以成直线或者成 90 度角。
小蓝还有一个 4 ×4 的方格盒子,用于存放玩具蛇,盒子的方格上依次标着字母 A到 P 共 16个字母。
小蓝可以折叠自己的玩具蛇放到盒子里面。他发现,有很多种方案可以将玩具蛇放进去。
下图给出了两种方案:
请帮小蓝计算一下,总共有多少种不同的方案。如果两个方案中,存在玩具蛇的某一节放在了盒子的不同格子里,则认为是不同的方案。
#include<stdio.h>
int a[5][5];
int sum;
int arr(int x, int y, int count) {
if (a[x][y] == 1)
return 1;
if (x < 1 || x > 4 || y < 1 || y > 4)
return 1;
if (count == 16) {
sum++;
return 1;
}
a[x][y] = 1;
arr(x - 1, y, count + 1);
arr(x + 1, y, count + 1);
arr(x, y - 1, count + 1);
arr(x, y + 1, count + 1);
a[x][y]=0;
return 1;
}
int main() {
arr(1, 1, 1);
arr(1, 2, 1);
arr(1, 3, 1);
arr(2, 2, 1);
printf("%d", sum * 4);
return 0;
}
总结:生活不在别处,当下即是全部!!!