蓝桥杯之数的分解-创新互联

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

成都创新互联公司成立于2013年,是专业互联网技术服务公司,拥有项目网站建设、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元江干做网站,已为上家服务,为江干各地企业和个人服务,联系电话:13518219792

把 20192019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?

注意交换 33个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。

话不多说,直接上

AC Code

:

#include
using namespace std;
int check(int x)//检查i,j,k是否含有2或4
{
 while (x)
 {
     if (x % 10 == 2 || x % 10 == 4)
         return 0;
     x /= 10;
 }
 return 1;
}
int main()
{
 //因为交换 3 个整数的顺序被视为同一种方法
 //所以我们认为的将三个数i,j,k定为i  int count = 0;
 for (int i = 1; i< 2019; i++)
 {
     for (int j = i+1; j< 2019; j++)//j=i+1因为我们规定j>i
     {
         if (i + j >2019)continue;//进行剪枝
         int k = 2019 - i - j;//这样会减少一循环结果,从而加快速度
         if (i + j + k == 2019&&k>j)//k>j
         {
             //调用函数这样让代码简洁不少,大家可以参考参考。
             if (check(i) && check(j) && check(k))//判断i,j,k是否含有2或4
             {
                 count++;
             }
         }
     }
 }
 cout<< count;
 return 0;
}

这样就好啦~,欢迎交流~

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页题目:蓝桥杯之数的分解-创新互联
转载来源:http://hbruida.cn/article/cdssss.html