[問題] MIPS 排列組合
小弟是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)
→
05/06 01:51, , 1F
05/06 01:51, 1F
→
05/06 03:02, , 2F
05/06 03:02, 2F
→
05/06 08:22, , 3F
05/06 08:22, 3F
推
05/06 14:23, , 4F
05/06 14:23, 4F
→
05/06 14:24, , 5F
05/06 14:24, 5F
→
05/06 19:39, , 6F
05/06 19:39, 6F
Programming 近期熱門文章
PTT數位生活區 即時熱門文章