2019年蓝桥杯C/C++大学B组省赛真题(数的分解)

题目描述:

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

代码:

#include
using namespace std;
int res;
int main(){
	for(int i=1;i<673;i++){
		string s1=to_string(i);
		if(s1.find('2')!=-1||s1.find('4')!=-1)continue;
			for(int j=i+1;j<1346;j++){
				string s2=to_string(j);
				if(s2.find('2')!=-1||s2.find('4')!=-1)continue;
						int k=2019-i-j;
						if(k<=j)continue;
						string s3=to_string(k);
						if(s3.find('2')!=-1||s3.find('4')!=-1)continue;
						if(i+j+k==2019)res++;
			}
	}
	cout<

代码测试链接:P1464 - [蓝桥杯2019初赛]数的分解 - New Online Judge

你可能感兴趣的:(蓝桥杯真题,蓝桥杯)