重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
成都创新互联公司成立于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
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元起,快前往官网查看详情吧