- 217 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:07:47 ]
- >>150
どう表示したらいいか不明なので適当にやった 最小のものが見つかった時点で逐次表示 #include<stdio.h> int main(void){ int cost[][4][3]={{{3,2,1},{2,3,3},{3,3,2},{0,2,0}}, {{1,1,2},{2,1,3},{3,1,2},{0,2,0}}, {{1,1,2},{1,2,3},{1,1,4},{0,3,0}}, {{3,0,0},{2,0,0},{2,0,0},{0,0,0}}}, c,cmin=9999,p,pmin=9999,x,y,i,k; for(i=0;i<729;i++){//3^6=729 printf("(0,0)0"); for(k=i,c=p=x=y=0;x<3&&y<3;k/=3) c+=cost[x][y][k%3], p++, x+=(k%3!=0), y+=(k%3!=1), printf("→(%d,%d)%d",x,y,c); if(x==3&&y==3&&cmin>c)cmin=c,printf(" 最小コスト\n"); else if(x==3&&y==3&&pmin>p)pmin=p,printf(" 最短経路\n"); else printf("\r%79s\r",""); } return 0; }
|

|