枚举-除法

输入正整数n,输出abcde / fghij = n 的表示式,abcdefghij时0到9的一个排列


思路:

       枚举出所有除数的可能,从0到9的fghij ,在用都不相等的fghij组成的数*n,就是被除数,在将这个被除数每一位分开,变成abcde,满足所有数之和为45且

      互不相等,就是结果


代码:

#include <stdio.h>
main()
{
	int a,b,c,d,e,n,s;
	int f,g,h,i,j;
	scanf("%d",&n);
	//枚举除数 
	for (f=0;f<10;f++)
	for (g=0;g<10;g++)
	for (h=0;h<10;h++)
	for (i=0;i<10;i++)
	for (j=0;j<10;j++)
	{
		//判断fghij不等 
		if (f!=g&&f!=h&&f!=i&&f!=j&&g!=h&&g!=i&&g!=j&&h!=i&&h!=j&&i!=j)
		{
		s=(f*10000+g*1000+h*100+i*10+j) * n; //s为abcde组成的数字
		//将abcde从s中分割出来 
		a=s/10000;
		b=s/1000%10;
		c=s/100%10;
		d=s/10%10;
		e=s%10;  
		//判断abcde fghij全部都不相等 且之和为45 
		if ((a+b+c+d+e+f+g+h+i+j==45)
		    &&a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&b!=d&&b!=e&&c!=d&&c!=e&&d!=e&&a!=f
			&&a!=g&&a!=h&&a!=i&&a!=j
		   &&b!=f&&b!=g&&b!=h&&b!=i&&b!=j
		   &&c!=f&&c!=g&&c!=h&&c!=i&&c!=j
		   &&d!=f&&d!=g&&d!=h&&d!=i&&d!=j
		   &&e!=f&&e!=g&&e!=h&&e!=i&&e!=j)
		  {
		  	 printf("%d%d%d%d%d / %d%d%d%d%d = %d\n",a,b,c,d,e,f,g,h,i,j,n);
		  }
	    }
	}
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值