赞
踩
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,
一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。
循环遍历看每个数的每位
#include<iostream> using namespace std; bool check(int num){ while(num){ int digit = num%10; if(digit == 2||digit == 4) return false; num /= 10; } return true; } int main() { int n = 2019; int cnt = 0; for(int i = 1;i < 2019;i++){ for(int j = i+1;j < 2019;j++){ int k = n-(i+j);//这里不用循环因为只有一个满足i+j+k == 1019 if(check(i)&&check(j)&&check(k)) if(j < k) cnt++;//有重复的,因此从大到小排除 } } cout<<cnt; return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。