教育教学成果展示网站建设,做淘宝客必须要有网站吗,网上帮做一些小事赚零花钱的网站,深圳建设局官网站题目
把 2019 分解成 3 个各不相同的正整数之和#xff0c;并且要求每个正整数都不包含数字 2 和 4#xff0c; 一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法#xff0c;例如 1000100118 和 1001100018 被视为同一种。
思路
循环遍历看每个数的…题目
把 2019 分解成 3 个各不相同的正整数之和并且要求每个正整数都不包含数字 2 和 4 一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法例如 1000100118 和 1001100018 被视为同一种。
思路
循环遍历看每个数的每位
代码
#includeiostream
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 i1;j 2019;j){int k n-(ij);//这里不用循环因为只有一个满足ijk 1019if(check(i)check(j)check(k))if(j k) cnt;//有重复的因此从大到小排除}}coutcnt;return 0;
}总结
有时不需要循环因为只有一个符合条件建议创建函数使代码更有可读性注意排除重复的和注意特殊情况