#include#include #define N 100 typedef struct{ int row,col,dir; }locate; typedef struct{ int horiz,vert; }offsets; int Top=-1; /* 初始堆疊頂端 */ locate Stack[N]; offsets move[4]={ [0]={ .horiz=0, .vert=-1}, //N [1]={ .horiz=1, .vert=0}, //E [2]={ .horiz=0, .vert=1}, //S [3]={ .horiz=-1, .vert=0} //W }; void Push(locate); locate Pop(); void PrintStack(); int main() { int mrows,mcols,exitrow,exitcol,i,j,row,col,dir=0; locate position; scanf("%d %d",&mrows,&mcols); /* Input maze size m*n */ scanf("%d %d",&exitrow,&exitcol); /* Input exitrow exitcol */ int maze[mrows+2][mcols+2]; int mark[mrows+2][mcols+2]; /* Record Visited position in mark array */ for(i=0;i<mrows+2;i++) /* Initial maze and mark array */ { for(j=0;j<mcols+2;j++) { mark[i][j]=0; /* Initial mark array to 0 */ if(i==0 || i==mrows+1 || j==0 || j==mcols+1) /* if row=0 or row=last row col=0 or col=last col set maze[i][j]=1 be wall */ maze[i][j]=1; else scanf("%d",&maze[i][j]); /* else input maze data*/ } } printf("\n===== 顯示迷宮 =====\n"); for(i=0;i<mrows+2;i++) { for(j=0;j<mcols+2;j++) { if(maze[i][j]==1) printf("█"); else printf(" "); } printf("\n"); } //printf("\n"); int entr_ROW=1,entr_COL=1; /* Set maze entraence(1,1) */ int next_ROW,next_COL; /* next position */ Top=0; /* push entrance to Stack */ Stack[0].row=entr_ROW; Stack[0].col=entr_COL; Stack[0].dir=dir; mark[entr_ROW][entr_COL]=1; //PrintStack(); while(Top > -1) { position=Pop(); /* pop position from Stack */ row=position.row; col=position.col; dir=position.dir; //printf("%d %d %d\n",row,col,dir); while(dir<4) { next_ROW=row+move[dir].vert; next_COL=col+move[dir].horiz; //printf("%d %d %d",next_ROW,next_COL,dir);//break; if(next_ROW==exitrow && next_COL==exitcol) { //mark[next_ROW][next_COL]=1; position.row=row; position.col=col; position.dir=dir; Push(position); printf("\n===== 顯示迷宮路徑 =====\n"); for(i=Top;i>=0;i--) { maze[Stack[i].row][Stack[i].col]=3; //printf("%d %d %d\n",Stack[i].row,Stack[i].col,Stack[i].dir); } for(i=0;i<mrows+2;i++) { for(j=0;j<mcols+2;j++) { if(maze[i][j]==0) printf(" "); else if(maze[i][j]==1) printf("█"); else printf("○"); } printf("\n"); } return 0; } else if(maze[next_ROW][next_COL]==0 && mark[next_ROW][next_COL]==0) { mark[next_ROW][next_COL]=1; position.row=row; position.col=col; position.dir=dir; Push(position); /* Save the current position */ row=next_ROW; /* Specify the next position */ col=next_COL; dir=0; /* Zero the direction */ } else dir++; } } printf("迷宮沒有出口!\n"); return 0; } void Push(locate item) { if(Top==(N-1)) { printf("= Stack full ! =\n"); } else { //Top=Top+1; Stack[++Top]=item; } } locate Pop() { if(Top==-1) { printf("= Stack empty ! =\n"); } else { return Stack[Top--]; } } void PrintStack() { int i; if(Top==-1) { printf("堆疊是空的!\n"); } else { printf("= Stack contain : =\n"); for(i=Top;i>=0;i--) printf("%d %d %d\n",Stack[i].row,Stack[i].col,Stack[i].dir); printf("\n"); } }
2017年12月10日
老鼠走迷宮
2017年10月17日
配合排程使用 forfiles 刪除指定檔案
刪除指定的檔案
forfiles /p c:\02FirefoxPortable /s /m *.dll /c "cmd /c erase @path"
forfiles /p c:\02FirefoxPortable /s /m *.chk /c "cmd /c erase @path"
配合排程
forfiles /p c:\02FirefoxPortable /s /m *.dll /c "cmd /c erase @path"
forfiles /p c:\02FirefoxPortable /s /m *.chk /c "cmd /c erase @path"
配合排程
標籤:
電腦問題
2017年9月6日
C_MM29- 最大質數問題
問題描述:試撰寫一個程式,可輸入一個整數,並找出小於此數的最大質數。
輸入說明:輸入一個正整數。
輸出說明:輸出最大質數。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,i,j;
int isp=0;
scanf("%d",&x);
for(i=x-1;i>0;i--)
{
for(j=2;j<i;j++)
{
isp=1;
if(i%j==0)
{
isp=0;
break;
}
}
if(isp==1)
{
printf("%d\n",i);
break;
}
}
return 0;
}
標籤:
itsa
C_MM20-十進位轉十六進位
題目描述:
十進位轉十六進位
十進位轉十六進位
輸入說明:
輸入一個十進位的整數
輸入一個十進位的整數
輸出說明:
把輸入的數轉為十六進位輸出
把輸入的數轉為十六進位輸出
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,rem,i=0;
int ans[99];
char a16[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
scanf("%d",&num);
while(num>0)
{
rem=num%16;
num=num/16;
ans[i]=rem;
i++;
}
while(i>0)
{
i--;
printf("%c",a16[ans[i]]);
}
printf("\n");
return 0;
}
標籤:
itsa
C_MM09-計算 i 次方的值
問題描述:
請撰寫一個程式,計算2的 i次方的值。(提示:利用位移運算元)
請撰寫一個程式,計算2的 i次方的值。(提示:利用位移運算元)
輸入說明:
輸入一個正整數,i的值小於31。
輸入一個正整數,i的值小於31。
輸出說明:
輸出 的i次方的值。
輸出 的i次方的值。
若 i > 31 輸出 "Value of more than 31"
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,a,sum=1;
scanf("%d",&a);
if(a<31)
{
for(i=0;i<a;i++)
{
sum=sum*2;
}
printf("%d\n",sum);
}
else
{
printf("Value of more than 31\n");
}
return 0;
}
標籤:
itsa
C_MM03-兩數總和
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,sum;
while(scanf("%d %d",&a,&b)!=EOF)
{
sum=a+b;
printf("%d\n",sum);
}
return 0;
}
標籤:
itsa
2017年9月5日
C_MM072-心得報數
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,N,k,num=0;
int bob=0,count=0,i,j=0;
scanf("%d",&n);
while(num<n)
{
scanf("%d",&N);
scanf("%d",&k);
int all[N];
int out[N];
for(i=0;i<N;i++)
{
all[i]=i+1;
out[i]=0;
}
while(bob<N-1)
{
if(out[j%N]==0)
count++;
if(count==k)
{
out[j%N]=1;
count=0;
bob++;
}
j++;
}
while(out[j%N]!=0)//找出下一個未爆0
j++;
printf("%d\n",all[j%N]);
j=0;count=0;bob=0;
num++;
}
return 0;
}
標籤:
itsa
2017年4月7日
使用Git and 建立虛擬開發環境
官方網站:
https://git-scm.com/
15分鐘學會 Git
https://try.github.io/levels/1/challenges/1
註冊 Github 帳號
https://github.com/
https://github.com/kdchang
建立虛擬開發環境
http://yannylue.pixnet.net/blog/post/63377682
https://git-scm.com/
15分鐘學會 Git
https://try.github.io/levels/1/challenges/1
註冊 Github 帳號
https://github.com/
https://github.com/kdchang
建立虛擬開發環境
http://yannylue.pixnet.net/blog/post/63377682
標籤:
Python
2017年4月2日
建立開發環境
Anaconda
Cmder
官網:http://cmder.net
延伸閱讀:介紹好用工具:Cmder ( 具有 Linux 溫度的 Windows 命令提示字元工具 )
git
官網:https://git-scm.com
延伸閱讀:15分鐘學會Git 連猴子都能懂的Git入門指南
Cmder 指令
查看 phthoy 版本:python -V
查看 git 版本:git --version
建立虛擬環境:conda create -n 虛擬環境名稱 python=3.5 anaconda
刪除虛擬開發環境
conda remove -n 虛擬環境名稱 --all
列出所有虛擬環境
conda info -e
啟動虛擬開發環境
activate 虛擬環境名稱
參考來源:
http://yuan.logdown.com/posts/1660420-unit-two-a-development-environment-built
Cmder
官網:http://cmder.net
延伸閱讀:介紹好用工具:Cmder ( 具有 Linux 溫度的 Windows 命令提示字元工具 )
git
官網:https://git-scm.com
延伸閱讀:15分鐘學會Git 連猴子都能懂的Git入門指南
Cmder 指令
查看 phthoy 版本:python -V
查看 git 版本:git --version
建立虛擬環境:conda create -n 虛擬環境名稱 python=3.5 anaconda
刪除虛擬開發環境
conda remove -n 虛擬環境名稱 --all
列出所有虛擬環境
conda info -e
啟動虛擬開發環境
activate 虛擬環境名稱
參考來源:
http://yuan.logdown.com/posts/1660420-unit-two-a-development-environment-built
標籤:
Python
訂閱:
意見 (Atom)