概述
题目描述:
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
# include<stdio.h>
int main(){
int w[4]={0};
int i,sum=0;
int x[100],n=0;
for(i=1000;i<10000;i++){
w[0]=i/1000;//千位
w[1]=i%1000/100;//百位
w[2]=i%100/10;//十位
w[3]=i%10;//个位
if(w[0]==w[1]||w[0]==w[2]||w[0]==w[3]||w[1]==w[2]||w[1]==w[3]||w[2]==w[3])continue;//保证每位数字不同
for(int i1=0;i1<4;i1++){
for(int i2=0;i2<4;i2++){
if(i2==i1)continue;
for(int i3=0;i3<4;i3++){
if(i3==i1||i3==i2)continue;
for(int i4=0;i4<4;i4++){
if(i4==i3||i4==i2||i4==i1)continue;
int a=w[i1];
int b=w[i2];
int c=w[i3];
int d=w[i4];
if(a*(b*100+c*10+d)==i){
//printf("%d*%d%d%d=%dn",a,b,c,d,i);
sum++;
}
if((a*10+b)*(c*10+d)==i){
int flag=0;//去除重复
for(int j=0;j<n;j++){
if(c*10+d==x[j])flag=1;
}
if(flag==1)break;
//printf("%d%d*%d%d=%dn",a,b,c,d,i);
x[n++]=a*10+b;
sum++;
}
}
}
}
}
}
printf("%d",sum);
}
最后
以上就是义气鞋子为你收集整理的枚举-解方程的全部内容,希望文章能够帮你解决枚举-解方程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复