3 条题解
-
0
#include <iostream> using namespace std; const int NUMBERS_PER_TICKET = 7; const int NUM_PRIZES = 7; int main() { int n; cin >> n; int winningNumbers[NUMBERS_PER_TICKET]; // 读取中奖号码 for (int i = 0; i < NUMBERS_PER_TICKET; ++i) { cin >> winningNumbers[i]; } int prizeCounts[NUM_PRIZES] = {0}; // 初始化各奖项中奖张数为 0 // 处理每张彩票 for (int i = 0; i < n; ++i) { int ticketNumbers[NUMBERS_PER_TICKET]; // 读取当前彩票的号码 for (int j = 0; j < NUMBERS_PER_TICKET; ++j) { cin >> ticketNumbers[j]; } int matchCount = 0; // 记录当前彩票与中奖号码相同的数量 // 统计相同号码的数量 for (int j = 0; j < NUMBERS_PER_TICKET; ++j) { for (int k = 0; k < NUMBERS_PER_TICKET; ++k) { if (ticketNumbers[j] == winningNumbers[k]) { ++matchCount; break; } } } // 根据相同号码的数量确定中奖等级并更新对应奖项的中奖张数 if (matchCount > 0) { prizeCounts[NUM_PRIZES - matchCount]++; } } // 输出各奖项的中奖张数 for (int i = 0; i < NUM_PRIZES; ++i) { cout << prizeCounts[i]<<" "; } cout << endl; return 0; } 这个题解是我的思路加上AI给的修改,下面两位学长的方法很好,是对我们输的号码,一个一个进行判断,但我的思路是把所有的号码全部输入完,然后进行两层for循环找到我们的数,然后又通过一个数组来储存答案,发现了中奖个数与数组下标的关系,然后进行储存,最后进行输出。
信息
- ID
- 100
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 852
- 已通过
- 107
- 上传者