专栏首页卡尼慕1464: [蓝桥杯2019初赛]数的分解

1464: [蓝桥杯2019初赛]数的分解

题目

把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18 和1001+1000+18 被视为同一种。

思路

最简单的思路就是暴力枚举法,也是一道填空题,所以代码超时也没关系,提交答案即可。按照题目要求进行判断,由于不能出现重复,a=b,a=c,b=c,同时也要保证a,b,c三个的位置互换可能会有六种情况。因此最简单的思路就是第一次循环从1-n,第二次循环从上一次循环+1开始到n,第三次是第二次+1到n,保证了位置上的无重复。当然你也可以全部列出来然后统一处以6,至于为什么除6,可以考虑一下概率论的知识,三个位置三个球一共几种摆法,也就是3×2×1=6。

代码

// 1464: [蓝桥杯2019初赛]数的分解
#include <iostream>
using namespace std;
bool judge(int num){
    while(num){
        int tmp = num % 10;
        if(tmp == 2 || tmp == 4){
            return true;
        }
        num /= 10;
    }
    return false;
}
bool check(int a, int b, int c) {
    // 有数字出现 2 和 4,或者出现重复数字,返回 0 
    if (judge(a) || judge(b) || judge(c) || 
        a == b || a == c || b == c) {
        return false;
    }
    return true;
}
int main(){
    int n = 2019;
    int count = 0;
    for(int i = 1; i < n - 1; i++){
        for(int j = i + 1; j < n - 1; j++){
            for(int k = j + 1; k < n - 1; k++){
                if(i + j + k == n){
                    count += check(i, j, k);
                }
            }
        }
    }
    cout<<count;
    return 0;
} 

本文分享自微信公众号 - 卡尼慕(gh_40138f7dc7d3),作者:卡尼幕

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 1087 有多少不同的值 (20 分)

    当自然数 n 依次取 1、2、3、……、N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然...

    可爱见见
  • 1072 开学寄语 (20 分)

    可爱见见
  • 1073 多选题常见计分法 (20 分)

    可爱见见
  • BZOJ3004: 吊灯(结论 毒瘤)

    结论:若$k$是可行的,则至少有$\frac{n}{k}$个节点的大小为$k$的倍数

    attack
  • 「2017 Multi-University Training Contest 1」2017多校训练1

    饶文津
  • 计蒜客2018 蓝桥杯省赛 B 组模拟赛(一)

    Zoctopus
  • POJ Test for Job(DAG上拓扑排序)

           题意是给了n个点,m条边(单向边),然后每个点都有一个点权(存在负权),问从入度为0的点开始到出度为0的点,最大的权值和为多少。

    Ch_Zaqdt
  • PTA 7-1 畅通工程之局部最小花费问题(35 分)

    7-1 畅通工程之局部最小花费问题(35 分) 某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城...

    Kindear
  • 「CodeForces - 598B」Queries on a String

    字符串s(1 ≤ |s| ≤ 10 000),有m(1 ≤ m ≤ 300)次操作,每次给l,r,k,代表将r位置插入l位置前,执行k(1 ≤ k ≤ 1 00...

    饶文津
  • leetcode 204题求素数个数

    Count the number of prime numbers less than a non-negative number, n

    用户1539362

扫码关注云+社区

领取腾讯云代金券