日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

回炉-拨钟问题

發(fā)布時(shí)間:2025/3/8 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 回炉-拨钟问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目:撥鐘問(wèn)題

1166:撥鐘問(wèn)題

描述

有9個(gè)時(shí)鐘,排成一個(gè)3*3的矩陣。

|-------| |-------| |-------| | | | | | | | |---O | |---O | | O | | | | | | | |-------| |-------| |-------|A B C |-------| |-------| |-------| | | | | | | | O | | O | | O | | | | | | | | | | |-------| |-------| |-------|D E F |-------| |-------| |-------| | | | | | | | O | | O---| | O | | | | | | | | | |-------| |-------| |-------|G H I

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

移動(dòng) 影響的時(shí)鐘

1 ABDE2 ABC3 BCEF4 ADG5 BDEFH6 CFI7 DEGH8 GHI9 EFHI

輸入

9個(gè)整數(shù),表示各時(shí)鐘指針的起始位置,相鄰兩個(gè)整數(shù)之間用單個(gè)空格隔開(kāi)。其中,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é)果。相鄰兩個(gè)整數(shù)之間用單個(gè)空格隔開(kāi)。
樣例輸入

3 3 0 2 2 2 2 1 2

樣例輸出

4 5 8 9

思路:枚舉,也就是暴力,注意一個(gè)方法最多使用三次。

#include <string.h> #include <stdio.h> #define FOR(x) for(x=0;x<=3;x++) int main() {int i,a[10],b[10],c[10];for(i=1;i<=9;i++)scanf("%d",&a[i]);FOR(b[1])FOR(b[2])FOR(b[3])FOR(b[4])FOR(b[5])FOR(b[6])FOR(b[7])FOR(b[8])FOR(b[9]){c[1]=(a[1]+b[1]+b[2]+b[4])%4;c[2]=(a[2]+b[1]+b[2]+b[3]+b[5])%4;c[3]=(a[3]+b[2]+b[3]+b[6])%4;c[4]=(a[4]+b[1]+b[4]+b[5]+b[7])%4;c[5]=(a[5]+b[1]+b[3]+b[5]+b[7]+b[9])%4;c[6]=(a[6]+b[3]+b[5]+b[6]+b[9])%4;c[7]=(a[7]+b[4]+b[7]+b[8])%4;c[8]=(a[8]+b[5]+b[7]+b[8]+b[9])%4;c[9]=(a[9]+b[6]+b[8]+b[9])%4;if(c[1]+c[2]+c[3]+c[4]+c[5]+c[6]+c[7]+c[8]+c[9]==0){for(i=0;i<b[1];i++) printf("1 ");for(i=0;i<b[2];i++) printf("2 ");for(i=0;i<b[3];i++) printf("3 ");for(i=0;i<b[4];i++) printf("4 ");for(i=0;i<b[5];i++) printf("5 ");for(i=0;i<b[6];i++) printf("6 ");for(i=0;i<b[7];i++) printf("7 ");for(i=0;i<b[8];i++) printf("8 ");for(i=0;i<b[9];i++) printf("9 ");printf("\n");return(0);}} }

總結(jié)

以上是生活随笔為你收集整理的回炉-拨钟问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。