国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

!算 24 (dfs)

2019-11-11 06:28:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

總時(shí)間限制: 3000ms 內(nèi)存限制: 65536kB 【】描述 給出4個(gè)小于10個(gè)正整數(shù),你可以使用加減乘除4種運(yùn)算以及括號(hào)把這4個(gè)數(shù)連接起來(lái)得到一個(gè)表達(dá)式。現(xiàn)在的問(wèn)題是,是否存在一種方式使得得到的表達(dá)式的結(jié)果等于24。

這里加減乘除以及括號(hào)的運(yùn)算結(jié)果和運(yùn)算的優(yōu)先級(jí)跟我們平常的定義一致(這里的除法定義是實(shí)數(shù)除法)。

比如,對(duì)于5,5,5,1,我們知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,對(duì)于1,1,4,2,我們?cè)趺炊疾荒艿玫?4。 【】輸入 輸入數(shù)據(jù)包括多行,每行給出一組測(cè)試數(shù)據(jù),包括4個(gè)小于10個(gè)正整數(shù)。最后一組測(cè)試數(shù)據(jù)中包括4個(gè)0,表示輸入的結(jié)束,這組數(shù)據(jù)不用處理。 【】輸出 對(duì)于每一組測(cè)試數(shù)據(jù),輸出一行,如果可以得到24,輸出“YES”;否則,輸出“NO”。 【】樣例輸入 5 5 5 1 1 1 4 2 0 0 0 0 【】樣例輸出 YES NO

代碼(學(xué)自syx大佬)

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>#include<cmath>#define LL long long#define p 0.00000001using namespace std;double num[5];bool f[5];bool dfs(int k)//計(jì)算完的卡號(hào) { if(k==4){ for(int i=1;i<=4;i++) if(!f[i]&&fabs(num[i]-24.0)<p) return true; return false; } for(int i=1;i<=4;i++) if(!f[i]) for(int j=i+1;j<=4;j++) if(!f[j])//未計(jì)算過(guò) { double tmp1=num[i],tmp2=num[j]; num[i]=tmp1+tmp2;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp1*tmp2;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp1-tmp2;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp2-tmp1;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp1/tmp2;f[j]=true; if(dfs(k+1)) return true; f[j]=false; num[i]=tmp2/tmp1;f[j]=true;//減或除以有兩種情況 這是一個(gè)坑 if(dfs(k+1)) return true; f[j]=false; num[i]=tmp1;f[j]=false;//回溯 } return false;}int main(){ while(1){ memset(f,false,sizeof(f));//多組數(shù)據(jù),每次初始化 scanf("%lf%lf%lf%lf",&num[1],&num[2],&num[3],&num[4]); if(num[1]==0&&num[2]==0&&num[3]==0&&num[4]==0) break; if(dfs(1))
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大名县| 漯河市| 农安县| 佛学| 自贡市| 潮州市| 东海县| 镇原县| 大埔区| 秦皇岛市| 永泰县| 江陵县| 淄博市| 肥西县| 佛教| 土默特右旗| 饶阳县| 洛扎县| 镇江市| 佛坪县| 固镇县| 浦北县| 广河县| 松溪县| 克拉玛依市| 读书| 郯城县| 苗栗县| 广平县| 镇坪县| 平远县| 延津县| 奉新县| 高唐县| 巴林右旗| 贵南县| 留坝县| 长白| 姚安县| 同江市| 盖州市|