不想融化的冰 2022-03-14 22:28 采纳率: 100%
浏览 35
已结题

用C++解决一些基本问题

问这个的做法
幸运数(lucky)
【题目描述】
抽奖环节让所有的同学都很兴奋,有的同学兴奋是因为抽到了想要的东西,
但有的同学抽到的却是不想要的。还有的人则抽到了好几个奖,羡慕死其他同学
了。
在联欢会临近结束的时候,抽奖的最后一个环节是同学们可以把自己的奖品
让给其他同学,但是让的话也是有规则的。这个规则就是用幸运数来指定。一位
获奖的同学,他要根据自己的抽奖号码 n,然后想一个数 m,计算符合要求的幸
运数有多少个。
所谓幸运数字,是指一个数字,如果它的数位的平均数不超过 m,那么这个
数字称为幸运数。
例 如 当 m=5 时 , 1234567890 和 123456789 是 幸 运 数 , 因 为
(1+2+3+4+5+6+7+8+9+0)/10=4.5 < 5,(1+2+3+4+5+6+7+8+9)/9 = 5;
而 99 则不是幸运数,因为(9+9)/2=9 > 5。
给定一位同学的抽奖码 n 和他想的数 m,统计 1n 之间有多少个幸运数。
【输入格式】
第一行包含两个整数 n 和 m
【输出格式】
一个整数,1
n 之间幸运数的个数。
【样例 1 输入】
19 3
【样例 1 输出】
9
【样例 2 输入】
2022 5
【样例 2 输出】
1516
【样例 3 输入】
123512353 8
【样例 3 输出】
123503565
【样例 1 说明】
第一个样例 1,2,3,10,11,12,13,14,15 是幸运数
【数据范围】
对于 30%数据:1<=n<=10^5, 1<=m<=9
对于 70%数据:1<=n<=10^9, 1<=m<=9
对于 100%数据:1<=n<=10^18, 1<=m<=9

  • 写回答

2条回答 默认 最新

  • _GX_ 2022-03-15 07:02
    关注
    #include <iostream>
    
    using namespace std;
    
    bool is_lucky_number(long long x, int m)
    {
        int sum = 0;
        int count = 0;
        while (x)
        {
            sum += x % 10;
            x /= 10;
            count++;
        }
        return static_cast<float>(sum) / count <= m;
    }
    
    int main()
    {
        long long n, count = 0;
        int m;
        cin >> n >> m;
        for (long long i = 1; i <= n; i++)
            if (is_lucky_number(i, m))
                count++;
        cout << count << endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月14日

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大