24行代码AC_蓝桥杯2019省赛 试题 D: 数的分解
生活随笔
收集整理的這篇文章主要介紹了
24行代码AC_蓝桥杯2019省赛 试题 D: 数的分解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述
把 2019 分解成 3 個各不相同的正整數之和,并且要求每個正整數都不包
含數字 2 和 4,一共有多少種不同的分解方法?
注意交換 3 個整數的順序被視為同一種方法,例如 1000+1001+18 和
1001+1000+18 被視為同一種。
這是一道結果填空的題,你只需要算出結果后提交即可。本題的結果為一
個整數,在提交答案時只填寫這個整數,填寫多余的內容將無法得分。
程序一秒鐘大概運行一億次, 201920192019的規模 大概4秒鐘就運行完了, 因此暴力可行。
循環中賦初值:j=i+1, k=j+1, 可以避免出現相同的數不同組合的情況。 請仔細體會。
代碼展示
#include<bits/stdc++.h> using namespace std;bool check(int num) {while(num) {int k = num%10;num /= 10;if(k ==2 || k==4) return false;}return true; }int main() {int sum = 0;for(int i = 1; i < 2019; i++) {if(!check(i)) continue;for(int j = i+1; j < 2019; j++) {if(!check(j)) continue;for(int k = j+1; k < 2019; k++) {if(!check(k)) continue;if(i+j+k == 2019) sum++; }}} cout << sum;return 0; }總結:最重要的一點,我們的目的是解題, 不是炫技! 實用才是王道!
總結
以上是生活随笔為你收集整理的24行代码AC_蓝桥杯2019省赛 试题 D: 数的分解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【思维】最大降雨量(解题报告)
- 下一篇: 【解题报告+感想感言】2019年第十届蓝