急求求C语言程序代码 题目如下,由1..9这九个数字组成的九位数(无重复数字)能被11整除,求最大、最小值。
1个回答
展开全部
//来来来,看我写的
void fun(int req[9], int pre, int *max, int *min){
int i,j;
int k;
int idx=0;
int tmp = 0;
if(pre >= 9){
tmp = 0;
for(i=0;i<9;i++){
tmp *= 10;
tmp += req[i];
}
if(tmp % 11 ){
return;
}
if(*max<tmp){
*max = tmp;
}
if(*min>tmp){
*min = tmp;
}
return;
}
for(i=1;i<=9;i++){
for(j=0;j<pre;j++){
if(i==req[j]){
break;
}
}
if(j>=pre){
req[pre] = i;
fun( req, pre+1, max, min);
req[pre] = 0;
}
}
}
void main(){
int req[9] = {0};
int max = 123456789;
int min = 987654321;
fun(req, 0, &max, &min);
printf("max:%d min:%d\n", max, min);
}
void fun(int req[9], int pre, int *max, int *min){
int i,j;
int k;
int idx=0;
int tmp = 0;
if(pre >= 9){
tmp = 0;
for(i=0;i<9;i++){
tmp *= 10;
tmp += req[i];
}
if(tmp % 11 ){
return;
}
if(*max<tmp){
*max = tmp;
}
if(*min>tmp){
*min = tmp;
}
return;
}
for(i=1;i<=9;i++){
for(j=0;j<pre;j++){
if(i==req[j]){
break;
}
}
if(j>=pre){
req[pre] = i;
fun( req, pre+1, max, min);
req[pre] = 0;
}
}
}
void main(){
int req[9] = {0};
int max = 123456789;
int min = 987654321;
fun(req, 0, &max, &min);
printf("max:%d min:%d\n", max, min);
}
追问
谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询