作者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)
1F:→ ykjiang:MIPS stand for? 61.59.233.99 05/06 01:51
2F:→ onizuka2111:楼上是想问?? 我是用Mars跑的218.166.242.100 05/06 03:02
3F:→ m1ssU:应该是指「MIPS指令集」,算盘本。 218.165.187.34 05/06 08:22
4F:推 final01:白算盘是不是也一直程式能翻阿?140.134.110.252 05/06 14:23
5F:→ final01: 有一只140.134.110.252 05/06 14:24
6F:→ freewindz:请问楼上室说白算盘里有一个范例吗 61.57.97.30 05/06 19:39