刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

分解整数

题目描述:

给定一个正整数N,然后将N分解成3个正整数之和。计算出共有多少种符合要求的分解方法。

要求:

1)分解的3个正整数各不相同;

2)分解的3个正整数中都不含数字3和7。

如:N为8,可分解为(1,1,6)、(1,2,5)、(1,3,4)、(2,2,4)、(2,3,3),其中满足要求的分解方法有1种,为(1,2,5)。

输入描述:

输入一个正整数N(5<N<501),表示需要分解的正整数

输出描述:

输出一个整数,表示共有多少种符合要求的分解方法


样例输入:

8

样例输出:

1

使用微信搜索喵呜刷题,轻松应对考试!

答案:

```#include #include using namespace std;int countWays(int N) int count = 0;for (int i = 1; i < N; i++) {for (int j = i + 1; j < N; j++) {int k = N - i - j;if (i != j && j != k && i != k && !contains3or7(i) && !contains3or7(j) && !contains3or7(k)) {count++;}}}return count;bool contains3or7(int num) while (num > 0) {if (num % 10 == 3 || num % 10 == 7) {return true;}num /= 10;}return false;int main() int N;cin >> N;cout << countWays(N);return 0;```

解析:

【喵呜刷题小喵解析】:
本题要求分解一个正整数N为三个正整数之和,并且这三个正整数中都不含数字3和7。首先,我们需要遍历所有可能的三个正整数组合,然后检查它们是否满足条件。

在遍历过程中,我们可以使用两个循环变量i和j来表示两个正整数,第三个正整数k则为N减去i和j的差。这样,我们就可以遍历所有可能的组合。

在每次循环中,我们需要检查i、j和k是否都不含数字3和7。可以通过取每个数字的个位数字,并检查是否等于3或7来实现。

最后,如果找到了一个满足条件的组合,就增加计数器count的值。最后,输出count即可。

在主函数中,我们首先从标准输入读取正整数N,然后调用countWays函数计算满足条件的分解方法数,并将结果输出到标准输出。
创作类型:
原创

本文链接:分解整数 题目描述: 给定一个正整数N,然后将N分解成3个正整数之和。计算出共有多少种符合要求的分解

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share