数的分解(点击前往做题)
输入描述:
把 20192019 分解成 33 个各不相同的正整数之和,并且要求每个正整数都不包含数字 22 和 44,一共有多少种不同的分解方法?
注意交换 33 个整数的顺序被视为同一种方法,例如 1000+1001+181000+1001+18 和 1001+1000+181001+1000+18 被视为同一种。
输出描述:
无
输入输出样例:
无
思路:
1、采用枚举求解
2、设2019=i+j+k
3、枚举i和j的取值,k的取值不用枚举,k=2019-i-j
4、避免i、j、k取值组合重复,在枚举时保证i
代码:
#includeusing namespace std; bool check(int x) { int t=x; while(t) { if(t%10==2||t%10==4) { return false; } t/=10; } return true; } int main() { int i,j,k,ans=0; for(i=1;i<=2019;i++) { for(j=i+1;j<=2019;j++) { k=2019-i-j; if(check(i)&&check(j)&&check(k)&&j 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)