1 条题解
-
0
C :
#include <stdio.h> #define N 10 #define M 6 void perms(int p[],int start) { int i,t; if(start==M) { if((p[0]*100+p[1]*10+p[2])*(p[0]*100+p[1]*10+p[2])==(p[0]*100000+p[3]*10000+p[4]*1000+p[5]*100+p[3]*10+p[1])) printf("%d%d%d\n",p[0],p[1],p[2]); return; } for(i=start;i<N;i++)// 注意i从start开始,不从0开始哦 { t=p[i];p[i]=p[start];p[start]=t;//交换 perms(p,start+1);//递归 t=p[i];p[i]=p[start];p[start]=t;//交换回来 } } int main() { int p[N]; for(int i=0;i<N;i++) p[i]=i;//数组赋初值 perms(p,0);//从数组中索引号为0的元素开始进行排列 return 0; }
C++ :
#include <stdio.h> #define N 10 #define M 6 void perms(int p[],int start) { int i,t; if(start==M) { if((p[0]*100+p[1]*10+p[2])*(p[0]*100+p[1]*10+p[2])==(p[0]*100000+p[3]*10000+p[4]*1000+p[5]*100+p[3]*10+p[1])) printf("%d%d%d\n",p[0],p[1],p[2]); return; } for(i=start;i<N;i++)// 注意i从start开始,不从0开始哦 { t=p[i];p[i]=p[start];p[start]=t;//交换 perms(p,start+1);//递归 t=p[i];p[i]=p[start];p[start]=t;//交换回来 } } int main() { int p[N]; for(int i=0;i<N;i++) p[i]=i;//数组赋初值 perms(p,0);//从数组中索引号为0的元素开始进行排列 return 0; }
- 1
信息
- ID
- 862
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者