- 求三种类型数列的和
题解
- 2025-1-23 14:43:42 @
#include<bits/stdc++.h> using namespace std; void lesson() { long long n,m,b,l; double a=0; cin>>n>>m>>b; for(int i=1;i<=n;i++) a+=i; for(int q=1;q<=m;q++) a+=q*q; for(double w=1;w<=b;w++)a+=1/w; printf("%.2f",a); } int main() { lesson(); return 0; }
1 条评论
-
majiatong LV 8 @ 2025-2-14 17:48:07
#include
#include
#include
using namespace std;
const int ROWS = 9; const int COLS = 9; const int MINES = 10;
// 初始化棋盘
void initializeBoard(int mines[ROWS][COLS], char board[ROWS][COLS]) { for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { mines[i][j] = 0; board[i][j] = '-'; } } // 随机布置地雷
int count = 0; while (count < MINES) { int x = rand() % ROWS; int y = rand() % COLS; if (mines[x][y] == 0) { mines[x][y] = 1; count++; } }
}
// 计算周围地雷数量 int countMines(int mines[ROWS][COLS], int x, int y) { int count = 0; for (int i = max(0, x - 1); i <= min(ROWS - 1, x + 1); i++) { for (int j = max(0, y - 1); j <= min(COLS - 1, y + 1); j++) { if (i!= x || j!= y) { count += mines[i][j]; } } } return count; }
// 打印棋盘
void printBoard(char board[ROWS][COLS]) { cout << " "; for (int i = 0; i < COLS; i++) { cout << i << " "; } cout << endl; for (int i = 0; i < ROWS; i++) { cout << i << " "; for (int j = 0; j < COLS; j++) { cout << board[i][j] << " "; } cout << endl; } }
// 翻开方格
bool reveal(int mines[ROWS][COLS], char board[ROWS][COLS], int x, int y) { if (mines[x][y] == 1) { return false; // 踩到地雷,游戏失败
} int mineCount = countMines(mines, x, y); board[x][y] = mineCount + '0'; // 如果周围没有地雷,递归翻开周围的方格 if (mineCount == 0) { for (int i = max(0, x - 1); i <= min(ROWS - 1, x + 1); i++) { for (int j = max(0, y - 1); j <= min(COLS - 1, y + 1); j++) { if (board[i][j] == '-') { reveal(mines, board, i, j); } } } } return true;
}
// 检查是否游戏胜利
bool isGameWon(int mines[ROWS][COLS], char board[ROWS][COLS]) { for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { if (mines[i][j] == 0 && board[i][j] == '-') { return false; } } } return true; }
int main() { srand(time(0)); int mines[ROWS][COLS]; char board[ROWS][COLS];
initializeBoard(mines, board); while (true) { printBoard(board); int x, y; cout << "请输入要翻开的方格坐标 (行 列): "; cin >> x >> y; if (x < 0 || x >= ROWS || y < 0 || y >= COLS) { cout << "无效的坐标,请重新输入!" << endl; continue; } if (!reveal(mines, board, x, y)) { cout << "你踩到地雷了,游戏失败!" << endl; break; } if (isGameWon(mines, board)) { cout << "恭喜你,游戏胜利!" << endl; break; } } return 0;
}
- 1
信息
- ID
- 915
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 81
- 已通过
- 32
- 上传者