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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

藍(lán)橋搜索題

2019-11-09 20:53:18
字體:
供稿:網(wǎng)友

搭積木 小明最近喜歡搭數(shù)字積木,

一共有10塊積木,每個積木上有一個數(shù)字,0~9。

搭積木規(guī)則:

每個積木放到其它兩個積木的上面,并且一定比下面的兩個積木數(shù)字小。

最后搭成4層的金字塔形,必須用完所有的積木。

下面是兩種合格的搭法:

0 1 2 3 4 5 6 7 8 9

0 3 1 7 5 2 9 8 6 4 請你計算這樣的搭法一共有多少種?

請?zhí)畋硎究倲?shù)目的數(shù)字。 注意:你提交的應(yīng)該是一個整數(shù),不要填寫任何多余的內(nèi)容或說明性文字。

答案 (5分)

#include<stdio.h>#include<stdlib.h>int visited[10]={0}; //查看該元素是否被訪問int a[10] = {0,1,2,3,4,5,6,7,8,9};int sum = 0; //定義全局變量sum來進(jìn)行對符合條件的組合計數(shù)int test(int n){ //對不適合的進(jìn)行剪枝 if(n == 2){ if(a[0]<a[1]&&a[0]<a[2]){ return 1; } return 0; } else if(n == 5){ if(a[1]<a[3]&&a[1]<a[4]&&a[2]<a[4]&&a[2]<a[5]){ return 1; } return 0; } else if(n == 9){ if(a[3]<a[6]&&a[3]<a[7]&&a[4]<a[7]&&a[4]<a[8]&&a[5]<a[8]&&a[5]<a[9]){ sum++; return 1; } return 0; } else return 1;}void dfs(int n){ int i; for(i=0;i<10;i++){ if(!visited[i]){ visited[i]=1; a[n]=i; //除了以下三行判斷是否滿足搭積木的規(guī)則 //,其余就是標(biāo)準(zhǔn)的dfs(); if(!test(n)){ visited[i]=0; continue; } dfs(n+1); visited[i]=0; } }}int main(){ dfs(0); 寒假作業(yè)

現(xiàn)在小學(xué)的數(shù)學(xué)題目也不是那么好玩的。

看看這個寒假作業(yè):

□ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ (如果顯示不出來,可以參見【圖1.jpg】)

每個方塊代表1~13中的某一個數(shù)字,但不能重復(fù)。

比如:

6 + 7 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 以及:

7 + 6 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 就算兩種解法。(加法,乘法交換律后算不同的方案)

你一共找到了多少種方案?

請?zhí)顚懕硎痉桨笖?shù)目的整數(shù)。

注意:你提交的應(yīng)該是一個整數(shù),不要填寫任何多余的內(nèi)容或說明性文字。

答案 (8分)

#include<iostream> //包含memset(數(shù)組名,0/-1(只能是將數(shù)組中所有元素初始化這兩個數(shù)),sizeof(數(shù)組名)) //算法頭文件,其中包含許多好用的庫函數(shù)using namespace std;int a[120],book[20]={0},sum=0; //book數(shù)組是用來標(biāo)記1-13哪個數(shù)已經(jīng)被用過了,用過則記為1,否則記為0;void dfs(int x){ if(x>3&&a[1]+a[2]!=a[3]) //如果前三個數(shù)已經(jīng)被取出來但不符合題設(shè)條件,則返回重找 return; if(x>6&&a[4]-a[5]!=a[6]) //若前三個數(shù)滿足第一條,看4-6個數(shù)是否滿足第二個條件 return; if(x>9&&a[7]*a[8]!=a[9]) //同上 return; if(x>12&&a[12]*a[11]==a[10]) //如果所有條件均滿足,則讓sum++ { sum++; return; } for(int i=1;i<14;i++) //將1-13放入每一個格子中 { if(book[i]==0) //若該數(shù)字沒被用過則可以用,進(jìn)入下一步 { a[x]=i; book[i]=1; dfs(x+1); book[i]=0; } } return;}int main(){ dfs(1); cout<<sum; return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴青县| 调兵山市| 枣强县| 西乡县| 玛纳斯县| 耿马| 体育| 四川省| 淄博市| 司法| 同仁县| 通海县| 方山县| 沁水县| 西乌珠穆沁旗| 太和县| 和林格尔县| 灯塔市| 临湘市| 东宁县| 定远县| 富顺县| 共和县| 芷江| 文成县| 新田县| 永德县| 黄大仙区| 洞头县| 曲阳县| 化德县| 饶阳县| 开阳县| 湘阴县| 安图县| 日喀则市| 方城县| 镇原县| 盐山县| 都兰县| 延庆县|