除法
2016-07-26 07:41
225 查看
#include<stdio.h> void per(int *a, int n, int cur); //求全排列函数 int flag = 0; int m = 6; void cal(int *b); //检验除数和被除数各个为上的数字是否刚好是0-9 int main(){ int a[10]; for (int i=0; i<10; i++) a[i] = 0; per(a,10,0); printf("全排列的个数为%d",flag); } void per(int *a, int n, int cur){ if (cur == 5){ int result = 0; cal(a); flag++; }else{ for (int i=0; i<n; i++){ int ok = 1; for (int j=0; j<cur; j++){ if (i == a[j]){ ok = 0; } } if(ok){ a[cur] = i; per(a,10,cur+1); } } } } void cal(int *b){ int n; n = b[4] + b[3]*10 + b[2]*100 +b[1]*1000 +b[0]*10000; int a[10] = {0}; int temp; int flag = 0; int result = n * m; int result1 = result, n1 = n; a[b[4]] = 1; a[b[3]] = 1; a[b[2]] = 1; a[b[1]] = 1; a[b[0]] = 1; while(result!=0){ temp = result % 10; flag++; a[temp] = 1; result = result / 10; } if(flag != 5){ return ; } while(n!=0){ temp = n % 10; n = n / 10; } result = 0; for (int i=0; i<10; i++) result = result + a[i]; if(result == 10){ printf("%d ",result1); for(int i=0; i<5; i++){ printf("%d", b[i]); } printf("\n"); } }
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#递归算法之分而治之策略
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- C#算法函数:获取一个字符串中的最大长度的数字
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法