我的ACM之路——暴力除法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunshine_rebrith/article/details/80199059

问题 B: 暴力除法

时间限制: 1 Sec   内存限制: 128 MB
提交: 1277   解决: 558
[ 提交][ 状态][ 讨论版]

题目描述

输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2<=n<=79

输入

输入包括多行,每行一个正整数n,2<=n<=79

输出

针对每个输入的n,从小到大输出该表达式,若没有表达式可以生成,则不输出。

样例输入

62

样例输出

79546/01283=62
94736/01528=62
#include<stdio.h>
int main()
{
	int n,abcde,fghij;
	int i,j,k,l,m;
	int a,b,c,d,e;
	int f,g,h,ii,jj;
	while(scanf("%05d",&n)!=EOF)
	{
		for(abcde=1234;abcde<98765;abcde++)
		{
			a=abcde/10000;
			b=(abcde-a*10000)/1000;
			c=(abcde-a*10000-b*1000)/100;
			d=(abcde-a*10000-b*1000-c*100)/10;
			e=abcde%10;
		//	printf("%d %d %d %d %d\n",a,b,c,d,e);
			if(a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e) continue;
				//printf("%d %d %d %d %d\n",a,b,c,d,e);
			else
			{
				if(abcde%n==0)
				{
					fghij=abcde/n;
					if(fghij>1000)
					{
					//	printf("%d %05d\n",abcde,fghij);
					f=fghij/10000;
					g=(fghij-f*10000)/1000;
					h=(fghij-f*10000-g*1000)/100;
					ii=(fghij-f*10000-g*1000-h*100)/10;
					jj=fghij-f*10000-g*1000-h*100-ii*10;
					//printf("%d %d %d %d %d\n",f,g,h,ii,jj);
					if(f==a||f==b||f==c||f==d||f==e||f==g||f==h||f==ii||f==jj||g==a||g==b||g==c||g==d||g==e||g==h||g==ii||g==jj||h==a||h==b||h==c||h==d||h==e||h==f||h==ii||h==jj||ii==a||ii==b||ii==c||ii==d||ii==e||ii==jj||jj==a||jj==b||jj==c||jj==d||jj==e)
						continue;
				//	printf("%d %d\n",abcde,fghij);
					else
					{
						if(fghij<10000)
							printf("%d/%05d=%d\n",abcde,fghij,n);
						else
							printf("%d/%d=%d\n",abcde,fghij,n);
					}
				}
				}	
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/sunshine_rebrith/article/details/80199059