1 条题解
-
0
C :
#include <stdio.h> #include <stdlib.h> #define SIZE 100 #define bool int #define false 0 #define true 1 int num = 0; int contains(char str[SIZE], int k, int i) { for (int j = k; j < i; j++) { if (str[i] == str[j]) return true; } return false; } void MySwap(char *a, char *b) { char temp; temp= *a; *a = *b; *b = temp; } void Perm(char str[SIZE], int k, int m) { if (k == m) { for (int i = 0; i <= m; i++) printf("%c",str[i]); num++; printf("\n"); } else { for (int i = k; i <= m; i++) { if (!contains(str, k, i)) { MySwap(&str[k], &str[i]); Perm(str, k+1, m); MySwap(&str[k], &str[i]); } } } } int main() { int n; scanf("%d",&n); char s[SIZE]; scanf("%s", s); Perm(s, 0, n-1); printf("%d\n",num); return 0; }
C++ :
#include<iostream> #include<string> using namespace std; string res[100]; int n; int swap(char &a, char &b){ char temp; temp = a; a = b; b = temp; return 0; } void ex(){ int sum = 0,t = 0,flag = 1; string ss[100]={""}; for(int i = 0; i < n; i++){ for(int j = t; j >0; j--) if(ss[j] == res[i]) flag = 0; if(flag){ ss[++t] = res[i]; sum++; cout << ss[t] << endl; } flag = 1; } cout << sum; } int perm(string s, int k, int m){ if(k == m - 1){ static int c = 0; res[c] = s; c++; n = c; }else{ for(int i = k; i < m; i++){ swap(s[k],s[i]); perm(s,k+1,m); swap(s[k],s[i]); } } return 0; } int main(){ string s; int n; cin >>n >>s; perm(s, 0 ,s.length()); ex(); return 0;}
Pascal :
program pailie2; var n,i,m,d:longint; a,v:array[1..1000]of char; c:array[1..1000]of string; b:array[1..1000]of boolean; procedure save; var i:integer; begin inc(d); for i:= 1 to n do c[d]:=c[d]+a[i]; for i:= 1 to d-1 do if c[d]=c[i] then begin c[d]:=''; dec(d); break; end; end; procedure try(dep:longint); var i:longint; begin for i:= 1 to n do if b[i] then begin a[dep]:=v[i]; b[i]:=false; if dep=n then save else try(dep+1); b[i]:=true; end; end; begin fillchar(b,sizeof(b),true); d:=0; readln(n); for i:= 1 to n do read(v[i]); try(1); for i:= 1 to d do writeln(c[i]); writeln(d); end.
- 1
信息
- ID
- 3129
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者