1.结果填空:数列的首项(水题)
#include<iostream>
using namespace std;
int main(){
printf("%d" , (275 / 5 - 27) / 2);
return 0;
}
2.结果填空:特殊的四位数(水题)
#include<iostream>
using namespace std;
int main(){
for(int i = 1 ; i <= 9 ; i ++){
for(int j = 0 ; j <= 9 ; j ++){
for(int k = 0 ; k <= 9 ; k ++){
for(int l = 1 ; l <= 9 ; l ++){
if(i != j && i != k && i != l && j != k && j != l && k != l
&& i * i * i * i + j * j * j * j + k * k * k * k + l * l * l * l == i * 1000 + j * 100 + k * 10 + l)
printf("%d\n" , i * 1000 + j * 100 + k * 10 + l);
}
}
}
}
return 0;
}
3.结果填空:方格填数(暴力)
蓝桥杯暴力的极致体现。
#include<iostream>
using namespace std;
int g[15];
int sum = 0;
int main(){
for(int i = 0 ; i <= 9 ; i ++){
for(int j = 0 ; j <= 9 ; j ++){
for(int k = 0 ; k <= 9 ; k ++){
for(int l = 0 ; l <= 9 ; l ++){
for(int a = 0 ; a <= 9 ; a ++){
for(int b = 0 ; b <= 9 ; b ++){
for(int c = 0 ; c <= 9 ; c ++){
for(int d = 0 ; d <= 9 ; d ++){
for(int e = 0 ; e <= 9 ; e ++){
for(int f = 0 ; f <= 9 ; f ++){
g[0] = i , g[1] = j ,g[2] = k ,g[3] = l ,g[4] = a ,g[5] = b ,g[6] = c , g[7] = d ,g[8] = e ,g[9] = f;
if(g[0] + g[5] == g[2] + g[7] && g[2] + g[7] == g[4] + g[9] && g[0] + g[5] == g[4] + g[9] && g[1] + g[6] == g[3] + g[8]
&& g[0] != g[1] && g[0] != g[2] && g[0] != g[3] && g[0] != g[4] && g[0] != g[5] && g[0] != g[6] && g[0] != g[7] && g[0] != g[8] && g[0] != g[9]
&& g[1] != g[2] && g[1] != g[3] && g[1] != g[4] && g[1] != g[5] && g[1] != g[6] && g[1] != g[7] && g[1] != g[8] && g[1] != g[9]
&& g[2] != g[3] && g[2] != g[4] && g[2] != g[5] && g[2] != g[6] && g[2] != g[7] && g[2] != g[8] && g[2] != g[9]
&& g[3] != g[4] && g[3] != g[5] && g[3] != g[6] && g[3] != g[7] && g[3] != g[8] && g[3] != g[9]
&& g[4] != g[5] && g[4] != g[6] && g[4] != g[7] && g[4] != g[8] && g[4] != g[9]
&& g[5] != g[6] && g[5] != g[7] && g[5] != g[8] && g[5] != g[9]
&& g[6] != g[7] && g[6] != g[8] && g[6] != g[9]
&& g[7] != g[8] && g[7] != g[9]
&& g[8] != g[9]){
sum ++;
}
}
}
}
}
}
}
}
}
}
}
printf("%d" , sum);
return 0;
}
4.代码填空:打印菱形(数学)
注意这个地方的j & 1相当巧妙。但是这个问题用不上。
#include <stdio.h>
#include <string.h>
void f(int n) {
for (int i = 0; i < n * 2 - 1; ++i) {
int k = n > (i + 1) ? i : 2 * n - 2 - i ; // ²¹È«Õâ¾ä´úÂë
for (int j = 0; j < n - k - 1; ++j) {
printf(" ");
}
for (int j = 0; j < k * 2 + 1; ++j) {
if (j&1) {
printf(" ");
} else {
printf("*");
}
}
printf("\n");
}
}
int main() {
f(14);
return 0;
}
8.程序设计:插花 (贪心)
#include<iostream>
using namespace std;
int main(){
int n;
scanf("%d" , &n);
getchar();
char a[300005];
scanf("%s" , a);
int sum = 0 , pos = n - 1;//pos代表最后要放入的那个位置//
for(int i = 2 * n - 1 ; i >= pos ; i --){//从最后一个数字开始到目前要放的那个位置//
if(a[i] == '1'){
sum += (i - pos);
pos --;
}
}
printf("%d" , sum);
return 0;
}
6.worse
#include<iostream>
using namespace std;
int mul = 1;
int dx[4] = {0 , 1 , 0 , -1};
int dy[4] = {1 , 0 , -1 , 0};
int g[10][10] = { 0 };
bool v[10][10] = { 0 };
void dfs(int x , int y , int sum , int m){
if(sum > 24){
return ;
}
if(m > mul){
mul = m;
}
v[x][y] = 1;
m *= g[x][y];
for(int i = 0 ; i < 4 ; i ++){
int sx = x + dx[i];
int sy = y + dy[i];
if( v[sx][sy] == 0 && sx <= 5 && sy <= 5 && sx >= 1 && sy >= 1){
v[sx][sy] = 1;
dfs(sx , sy , sum + g[sx][sy] , m);
}
v[x][y] = 0;
}
}