作者onizuka2111 (ㄋㄥˇ ㄋㄥˊ)
站內Programming
標題[問題] MIPS 排列組合
時間Sun May 6 00:45:42 2007
小弟是MIPS的初學者
最近教授給了第2份作業
是輸入字串並輸出所以可能的排列組合及編號(順序沒關係)
EX: input ====> abc
output ====> 1.abc
2.acb
3.bca
4.bac
5.cba
6.cab
因為助教給的範例很不相關所以同屆的同學目前也沒人會寫@@
我有寫出C的版本
#include <stdio.h>
#include <stdlib.h>
#define N 4
void perm(int*, int);
int main(void)
{
int num[N+1], i;
for(i = 1; i <= N; i++)
num[i] = i;
perm(num, 1);
return 0;
}
void perm(int* num, int i)
{
int j, k, tmp;
if(i < N)
{
for(j = i; j <= N; j++)
{
tmp = num[j]; // 旋轉該區段最右邊數字至最左邊
for(k = j; k > i; k--)
num[k] = num[k-1];
num[i] = tmp;
perm(num, i+1); // 還原
for(k = i; k < j; k++)
num[k] = num[k+1];
num[j] = tmp;
}
}
else
{ // 顯示此次排列
for(j = 1; j <= N; j++)
printf("%d ", num[j]);
printf("\n");
}
}
請各位大大過目看應該怎麼改成MIPS或是提供網址也可以
感激<(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.242.100
※ 編輯: onizuka2111 來自: 218.166.242.100 (05/06 00:48)
→ ykjiang:MIPS stand for? 61.59.233.99 05/06 01:51
→ onizuka2111:樓上是想問?? 我是用Mars跑的218.166.242.100 05/06 03:02
→ m1ssU:應該是指「MIPS指令集」,算盤本。 218.165.187.34 05/06 08:22
推 final01:白算盤是不是也一直程式能翻阿?140.134.110.252 05/06 14:23
→ final01: 有一隻140.134.110.252 05/06 14:24
→ freewindz:請問樓上室說白算盤裡有一個範例嗎 61.57.97.30 05/06 19:39