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