【排序】用1~9组成3个三位数,abc,def,ghi,每个数字只使用一次,要求abc:def:hij=1:2:3

【排序】用1~9组成3个三位数,abc,def,ghi,每个数字只使用一次,要求abc:def:hij=1:2:3.。按照“abc def hij”的格式输出所有解,每行一个解。

思路:一开始想用枚举,然后发现不行,自己写了一个函数。函数求 abc , def , hij 的各个位上的数字是否有重复。 然后再利用枚举,求出符合条件的数字。

运行结果如下图所示:

#include <stdio.h>
int fc(int a,int b,int c){ 
	int s[9]; //数组用来储存三个数字的9个数 
	int m=0;
	int k[3]; //数组用来分别存三个三位数 
	k[0]=a,k[1]=b,k[2]=c;
	for(int i=0;i<9;i++){
		s[i]=k[m]%10;
		k[m]=k[m]/10;
		if(k[m]==0){
			m++;
		}
	}
	int t=1;
	for(int i=0;i<9;i++){ //比较是否有重复 
		for(int j=i+1;j<9;j++){
			if(s[i]==s[j]||s[i]==0){ //是否有0 
				t=0; //如果存在以上,则标记 t=0 
			}
		}
	}
	if(t==1) return 1;//如果不存在以上 return1 
	else return 0;	
}
int main(){
	int a,b,c;
	for(int i=111;i<=999;i++){ //从111开始枚举,直至999 
		a=i;   //倍数关系 1:2:3 
		b=i*2; 
		c=i*3;
			if(fc(a,b,c)==1 && c<=999){ //调用函数 
				printf("%d %d %d\n",a,b,c);
			}	
	}
}

猜你喜欢

转载自blog.csdn.net/wwwjw_w/article/details/81412755