版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
}
}
}
}
}
}
}