permutation

这是暑假集训的题目,感觉很想写出来分享一下,

 

题目是这样的:

用1,2,3~~9组成3个三位数,abc,def,ghi,每个数字使用一次,abc:def:ghi=1:2:3 ,写出三位数所产生的所有解,从小到大排列 按照abc def ghi输出

 

我的思路:

先确定最小的那个三位数的范围,然后进行循环,根据比值来找出另外两个三位数,然后取出这三个三位数的各位数,用每位数对应的数组元素+1,最后把数组循环一遍,如果有大于1的,说明有数字被使用了2次,那么这三个三位数不符合条件,不输出,如果没有一个数组元素大于1,则说明每个数字只使用了一次,输出这三个三位数。

下面是我写的代码:

#include<stdio.h>
int main()
{
	int i,x,y,z,a[10]={0},j;
	for(i=123;i<=333;i++)
	{
		x=i;
		y=2*x;
		z=3*x;
			a[x/10%10]++;
			a[y/10%10]++;
			a[z/10%10]++;
			a[x/100%10]++;
			a[y/100%10]++;
			a[z/100%10]++;
			a[x%10]++;
			a[y%10]++;
			a[z%10]++;
		for(j=0;j<10;j++)
		{
			if(a[j]>1)
				break;
			else
				a[j]=0;
		}
		if(j<10)
		{
			for(j=0;j<10;j++)
			{
				a[j]=0;
			}
		}
		else
			printf("%d %d %d\n",x,y,z);
	}
}

第一次写博客,有什么不好的地方希望大家指出。

全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务