掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
騎士の巡回問題の解の数の表示と経路表示をするには? (ID:38546)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
授業で紹介されたプログラムを少々改良して/**/の部分に書き加える課題なのですが、教えてください>< #include<stdio.h> #define M 8 //板の大きさ #define N 8 int array[N][N]; //到達を判別 int move[M][2]={{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{1,-2},{2,-1}}; int n_a=0; int main(){ int i,j; for(i=0;i<N;i++){ for(i=0;i<N;i++){ array[i][j]=0; array[0][0]=1; try(0,0,2); //0,0からスタート return 0; } } } void try(int x,int y,int a_move){ //x,yからスタートする int n,nx,ny,i; long int a,b,c; //カウント変数 a=0; b=0; for(i=0;i<M;i++){ nx=x+move[i][0]; ny=y+move[i][1]; if(nx<0 || nx>=N) continue; //板内にあるか判断 if(ny<0 || ny>=N) continue; //板内にあるか判断 if(array[nx][ny]==0){ array[nx][ny]=a_move; if(a_move==n*n){ if(c<100000000000000) c++; if(b<100000){ c=0; b++; } else{ c=0; b=0; a++; } printf(" %d %d %d\n",a,b,c); } else{ try(nx,ny,a_move+1); //バックトラック } array[nx][ny]=0; } } }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.