33,008
社区成员
发帖
与我相关
我的任务
分享
void sort(int * arr, int n)
{
if (n == 3)
{
for(int i = 0; i < n ; ++i)
printf(arr[i]);
return
}
else
{
int temp=0;
for(int j = 0; j < n; k++)
{
for(int k=j;k<n;k++)
{
temp = arr[k];
arr[k] = arr[j];
arr[j] = temp
sort(arr, k)
temp = arr[k];
arr[k] = arr[j];
arr[j] = temp
}
}
}
}
#include<stdio.h>
#include<math.h>
static int nn=1;
bool canplace(int* queen,int k,int i,int n){
for(int l=0;l<k;l++){
if(i==queen[l])
return 0;
}
return 1;
}
void print(int* queen,int n){
for(int l=0;l<n;l++){
printf("%d ",queen[l]+1);
}
printf("\n");
}
/*void print(int* queen,int n){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(j==queen[i])
printf("Q");
else
printf("*");
}
printf("\n");
}
}*/
void queens(int* queen,int k,int n){
for(int i=0;i<n;i++){
if (canplace(queen,k,i,n))
{
queen[k]=i;
if(k==n-1){
printf("the %dth answer is:\n",nn);
nn++;
print(queen,n);
printf("\n");
}
else
queens(queen,k+1,n);
}
}
return;
}
void main(){
int queen[5];
queens(queen,0,5);
}
void swap(char *str1,char *str2)
{
char temp;
temp=*str1;
*str1=*str2;
*str2=temp;
}
void permStr(char *str,int i)
{
//printf("%d",i);
if(i==strlen(str)-1)
printf("%s\n",str);
else
{
for(int j=i;j<strlen(str);j++)
{
//printf("i %d,j %d",i,j);
swap(&str[i],&str[j]);
permStr(str,i+1);
swap(&str[i],&str[j]);
}
}
}
int main()
{
char str[]={"abc"};
permStr(str,0);
return 0;
}