1 条题解
-
0
核心逻辑
- 计算单张牌积分:根据牌面点数按规则转换为积分(1→15,2→16,3~13→本身,14→20,15→25)。
- 计算基础总积分:四张牌积分之和。
- 判断特殊规则:
- 炸弹:四张牌点数完全相同 → 总积分 = 基础积分 × 5。
- 王炸:同时包含14(小王)和15(大王)→ 总积分 = 基础积分 + 160。
- 无特殊规则 → 总积分 = 基础积分。
代码实现
C
#include <stdio.h> // 计算单张牌的积分 int get_score(int p) { if (p == 1) return 15; else if (p == 2) return 16; else if (p >= 3 && p <= 13) return p; else if (p == 14) return 20; else if (p == 15) return 25; return 0; // 无效输入(题目保证合法) } int main() { int a, b, c, d; scanf("%d %d %d %d", &a, &b, &c, &d); // 计算基础总积分 int sum_base = get_score(a) + get_score(b) + get_score(c) + get_score(d); // 判断炸弹(四张牌点数相同) if (a == b && b == c && c == d) { printf("%d\n", sum_base * 5); return 0; } // 判断王炸(同时包含14和15) int has14 = (a == 14 || b == 14 || c == 14 || d == 14); int has15 = (a == 15 || b == 15 || c == 15 || d == 15); if (has14 && has15) { printf("%d\n", sum_base + 160); return 0; } // 无特殊规则 printf("%d\n", sum_base); return 0; }C++
#include <bits/stdc++.h> using namespace std; int get_score(int p) { if (p == 1) return 15; else if (p == 2) return 16; else if (3 <= p && p <= 13) return p; else if (p == 14) return 20; else if (p == 15) return 25; return 0; } int main() { int a, b, c, d; cin >> a >> b >> c >> d; int sum_base = get_score(a) + get_score(b) + get_score(c) + get_score(d); if (a == b && b == c && c == d) { cout << sum_base * 5 << endl; return 0; } bool has14 = (a == 14 || b == 14 || c == 14 || d == 14); bool has15 = (a == 15 || b == 15 || c == 15 || d == 15); if (has14 && has15) { cout << sum_base + 160 << endl; return 0; } cout << sum_base << endl; return 0; }Python
def get_score(p): if p == 1: return 15 elif p == 2: return 16 elif 3 <= p <= 13: return p elif p == 14: return 20 elif p == 15: return 25 return 0 # 读取输入 a, b, c, d = map(int, input().split()) # 计算基础总积分 sum_base = get_score(a) + get_score(b) + get_score(c) + get_score(d) # 判断炸弹 if a == b == c == d: print(sum_base * 5) else: # 判断王炸 has14 = 14 in (a, b, c, d) has15 = 15 in (a, b, c, d) if has14 and has15: print(sum_base + 160) else: print(sum_base)
- 1
信息
- ID
- 493
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 47
- 已通过
- 22
- 上传者