蓝桥杯真题训练 2019.4题
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯真题训练 2019.4题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
標(biāo)題: 數(shù)的分解(本題總分:10 分)
【問題描述】
把 2019 分解成 3 個(gè)各不相同的正整數(shù)之和,并且要求每個(gè)正整數(shù)都不包
含數(shù)字 2 和 4,一共有多少種不同的分解方法?
注意交換 3 個(gè)整數(shù)的順序被視為同一種方法,例如 1000+1001+18 和
1001+1000+18 被視為同一種。
【答案提交】
這是一道結(jié)果填空的題,你只需要算出結(jié)果后提交即可。本題的結(jié)果為一
個(gè)整數(shù),在提交答案時(shí)只填寫這個(gè)整數(shù),填寫多余的內(nèi)容將無法得分。
解題思路:
循環(huán)出答案,要注意去重的問題,可以讓 3 個(gè)變量(假設(shè)為 a, b, c)從 1 開始枚舉,即暴力,這樣的出來的結(jié)果肯定會(huì)有重復(fù),重復(fù)原因就是 a 可能和 b、c 重合,同樣,b 也可能和 a、c 出現(xiàn)重合,c 也可能和 a、b 重合。即需要把結(jié)果除以 6 。
另一種就是控制循環(huán)是a,b,c的值,讓a從a開始,b=a+1,c=b+1開始,這樣abc三個(gè)值也就不會(huì)有重復(fù)。這也是下面代碼的方法
代碼:
#include<stdio.h>int reso(int i=0) { int s=0;int a[4];for(i=0;i<4;i++){if(a[i]==2||a[i]==4)s=0;elses=a[1]*1000+a[2]*100+a[3]*10+a[4]; } return s; } main() { int count=0;int a,b,c;for(a=1;a<2019;a++){if(reso(a)!=0)continue;for(b=a+1;b<2019;b++){if(reso(b)!=0)continue;for(c=b+1;c<2019;c++){if(reso(c)!=0)count=count+1;}}}printf("%d",count); }總結(jié)
以上是生活随笔為你收集整理的蓝桥杯真题训练 2019.4题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是加盟费 向品牌持有人支付的费用
- 下一篇: 蓝桥杯真题训练 2019.3题