7.1.1除法
字典序输出 形如abcde/fghij = n 形式,n为输入数字,a~j为0~9
本来想用新学的回溯做。。。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int n;
int a[10];
int b[6];
int vis[10] = {0};
int judge(){
int i, sum = 0, num;
for( i = 1; i <= 5; i++){
vis[a[i]] = 1;
sum = sum * 10 + a[i];
}
if( sum % n){
return 0;
}
else{
num = sum / n;
for( i = 1; i <= 5; i++){
if( vis[num % 10]){
return 0;
}
else{
b[i] = num % 10;
vis[num % 10] = 1;
num = num / 10;
}
}
return 1;
}
}
void pailie( k){
int i;
if( k > 5){
if(judge()){
for( i = 1; i <= 9; i++){
printf("%d", a[i]);
}
printf("\n");
printf("/");
for( i = 5; i >= 1; i--){
printf("%d", b[i]);
}
printf(" = %d", n);
}
}
else for( i = 1; i <= 9; i++){
if( !vis[i]){
a[k] = i;
vis[i] = 1;
pailie( k + 1);
vis[i] = 0;
}
}
}
int main(void){
int i;
scanf("%d", &n);
memset(a, 0, sizeof(a));
pailie(1);
return 0;
}
根本没有办法输出!
换成循环