【每周例题】蓝桥杯 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;
}

  

 

posted @ 2024-04-07 21:02  山远尽成云  阅读(35)  评论(0)    收藏  举报