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

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

撥鐘問(wèn)題(蠻力法)

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

描述 有9個(gè)時(shí)鐘,排成一個(gè)3*3的矩陣。現(xiàn)在需要用最少的移動(dòng),將9個(gè)時(shí)鐘的指針都撥到12點(diǎn)的位置。 撥鐘問(wèn)題圖片示例 共允許有9種不同的移動(dòng)。如下表所示,每個(gè)移動(dòng)會(huì)將若干個(gè)時(shí)鐘的指針沿順時(shí)針?lè)较驌軇?dòng)90度。

輸入 從標(biāo)準(zhǔn)輸入設(shè)備讀入9個(gè)整數(shù),表示各時(shí)鐘指針的起始位置。0=12點(diǎn)、1=3點(diǎn)、2=6點(diǎn)、3=9點(diǎn)。

輸出 輸出一個(gè)最短的移動(dòng)序列,使得9個(gè)時(shí)鐘的指針都指向12點(diǎn)。按照移動(dòng)的序號(hào)大小,輸出結(jié)果。

樣例輸入 3 3 0 2 2 2 2 1 2

樣例輸出 4 5 8 9

來(lái)源 1166

分析 1、題目中的樣例輸入雖然是3X3的二維數(shù)組,但是此題中各元素相互關(guān)聯(lián)不大,為簡(jiǎn)化代碼的復(fù)雜度,可以直接使用長(zhǎng)度為9的一維數(shù)組存儲(chǔ)輸入的時(shí)鐘狀態(tài); 2、要使全部時(shí)鐘狀態(tài)都撥到12點(diǎn)位置,則數(shù)組中各元素最后的值全部都是4的倍數(shù)或者0; 3、對(duì)每一個(gè)時(shí)鐘而言,把其最初的狀態(tài)數(shù)字和移動(dòng)的次數(shù)相加,結(jié)果能夠整除4,就說(shuō)明移動(dòng)到12點(diǎn)了; 4、我們采用蠻力法,對(duì)每一個(gè)時(shí)鐘,把每一個(gè)可以撥動(dòng)它的方案從0次開(kāi)始嘗試,由于走4次就回到原位置了,所以每個(gè)時(shí)鐘最多撥動(dòng)3次,當(dāng)9個(gè)時(shí)鐘全部吻合條件時(shí),將9種方案的次數(shù)保存下來(lái),并輸出對(duì)應(yīng)的數(shù)字。

代碼(C語(yǔ)言)

#include <stdio.h>int main(){ int time[9] = {0}; // 定義數(shù)組保存時(shí)鐘初始狀態(tài) int i,i1,i2,i3,i4,i5,i6,i7,i8,i9; for(i=0;i<9;i++){ scanf("%d",&time[i]); } int min = 40; //每組最多走4次,9組最多有36次,不妨假設(shè)最多走40次,并設(shè)置為最小次數(shù) int result[9] = {0}; for(i1=0;i1<4;i1++){ for(i2=0;i2<4;i2++){ for(i3=0;i3<4;i3++){ for(i4=0;i4<4;i4++){ for(i5=0;i5<4;i5++){ for(i6=0;i6<4;i6++){ for(i7=0;i7<4;i7++){ for(i8=0;i8<4;i8++){ for(i9=0;i9<4;i9++){ if((i1+i2+i4+time[0])%4==0 && (i1+i2+i3+i5+time[1])%4==0 && (i2+i3+i6+time[2])%4==0 && (i1+i4+i5+i7+time[3])%4==0 && (i1+i3+i5+i7+i9+time[4])%4==0 && (i3+i5+i6+i9+time[5])%4==0 && (i4+i7+i8+time[6])%4==0 && (i5+i7+i8+i9+time[7])%4==0 && (i6+i8+i9+time[8])%4==0){ int sum = i1+i2+i3+i4+i5+i6+i7+i8+i9; if(sum < min){ //將次數(shù)少的組合方案保存到result數(shù)組中 min = sum; result[0] = i1; result[1] = i2; result[2] = i3; result[3] = i4; result[4] = i5; result[5] = i6; result[6] = i7; result[7] = i8; result[8] = i9; } } } } } } } } } } } int j; for(j=0;j<9;j++){ //從0開(kāi)始循環(huán),可以將結(jié)果從小到大輸出,就不需要進(jìn)行額外的排序了 while(result[j] != 0){ //當(dāng)result[j]為0時(shí),就跳過(guò)循環(huán),不輸出任何內(nèi)容
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 雷州市| 静宁县| 靖边县| 九龙城区| 赫章县| 叶城县| 中宁县| 遂川县| 商洛市| 离岛区| 新宾| 天长市| 神木县| 凭祥市| 三门峡市| 万载县| 保靖县| 洛宁县| 凉城县| 邢台县| 孟津县| 府谷县| 乌恰县| 高雄县| 宿松县| 清流县| 双流县| 平江县| 江达县| 安国市| 汽车| 仪征市| 洪江市| 永州市| 资兴市| 富裕县| 雷波县| 永吉县| 杭州市| 金乡县| 托里县|