【每周例题】蓝桥杯 C++ 鸡哥的蛋糕大作战
鸡哥的蛋糕大作战
题目
题目分析
1.使用一个for循环遍历全数,寻找最大洞的数
2.使用一个while进行数位拆分,寻找洞的数量
3.使用if从两个条件寻找最大洞的最小数
- 符合最大洞的数
- 洞数相同中的最小数
代码
#include<iostream> #include<bits/stdc++.h> using namespace std; int main() { long long int a, b; cin >> a >> b; long long int summax = -1, count = 100000; for (long long int i = a; i <= b; i++) { long long int sum = 0; // 重置 sum 为 0,用于计算当前数字的位数和 long long int num = i; // 复制 i 的值,以便不改变循环变量 while (num > 0) { int digit = num % 10; if (digit == 0 || digit == 6 || digit == 9) { sum++; } else if (digit == 8) { sum += 2; } num /= 10; } if (sum > summax || (sum == summax && i < count)) { summax = sum; count = i; } } cout << count; return 0; }