吸血鬼数算法(初步实现一)

吸血鬼数是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如如下的数字都是吸血鬼数字
1260=21*60
2187=27*81
写一个程序,找出2n(n>1)位数中的所有吸血鬼数字。注:编程语言任选,n由用户输入,程序输出对应位数的所有
吸血鬼数字。

 

// xiXieGui.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"


void xiXieGui(int n)
{
 int a,b,c,d;

 //获取该四位数的各位数字
 a=n/1000;
 b=n%1000/100;
 c=n%100/10;
 d=n%10;

 if(n==(a*10+b)*(c*10+d)) {printf("%d = %d * %d\n",n,(a*10+b),(c*10+d));return;}
 if(n==(a*10+b)*(d*10+c)) {printf("%d = %d * %d\n",n,(a*10+b),(d*10+c));return;}
 if(n==(a*10+c)*(b*10+d)) {printf("%d = %d * %d\n",n,(a*10+c),(b*10+d));return;}
 if(n==(a*10+c)*(d*10+b)){ printf("%d = %d * %d\n",n,(a*10+c),(d*10+b));return;}
 if(n==(a*10+d)*(b*10+c)){ printf("%d = %d * %d\n",n,(a*10+d),(b*10+c));return;}
 if(n==(a*10+d)*(c*10+b)) {printf("%d = %d * %d\n",n,(a*10+d),(c*10+b));return;}

 if(n==(b*10+a)*(c*10+d)) {printf("%d = %d * %d\n",n,(b*10+a),(c*10+d));return;}
 if(n==(b*10+a)*(d*10+c)) {printf("%d = %d * %d\n",n,(b*10+a),(d*10+c));return;}
 if(n==(b*10+c)*(a*10+d)){ printf("%d = %d * %d\n",n,(b*10+c),(a*10+d));return;}
 if(n==(b*10+c)*(d*10+a)) {printf("%d = %d * %d\n",n,(b*10+c),(d*10+a));return;}
 if(n==(b*10+d)*(a*10+c)){ printf("%d = %d * %d\n",n,(b*10+d),(a*10+c));return;}
 if(n==(b*10+d)*(c*10+a)){ printf("%d = %d * %d\n",n,(b*10+d),(c*10+a));return;}

 if(n==(c*10+b)*(a*10+d)){ printf("%d = %d * %d\n",n,(c*10+b),(a*10+d));return;}
 if(n==(c*10+b)*(d*10+a)) {printf("%d = %d * %d\n",n,(c*10+b),(d*10+a));return;}
 if(n==(c*10+a)*(b*10+d)){ printf("%d = %d * %d\n",n,(c*10+a),(b*10+d));return;}
 if(n==(c*10+a)*(d*10+b)){ printf("%d = %d * %d\n",n,(c*10+a),(d*10+b));return;}
 if(n==(c*10+d)*(b*10+a)) {printf("%d = %d * %d\n",n,(c*10+d),(b*10+a));return;}
 if(n==(c*10+d)*(a*10+b)) {printf("%d = %d * %d\n",n,(c*10+d),(a*10+b));return;}

 if(n==(d*10+b)*(c*10+a)){ printf("%d = %d * %d\n",n,(d*10+b),(c*10+a));return;}
 if(n==(d*10+b)*(a*10+c)){ printf("%d = %d * %d\n",n,(d*10+b),(a*10+c));return;}
 if(n==(d*10+c)*(b*10+a)){ printf("%d = %d * %d\n",n,(d*10+c),(b*10+a));return;}
 if(n==(d*10+c)*(a*10+b)){ printf("%d = %d * %d\n",n,(d*10+c),(a*10+b));return;}
 if(n==(d*10+a)*(b*10+c)){ printf("%d = %d * %d\n",n,(d*10+a),(b*10+c));return;}
 if(n==(d*10+a)*(c*10+b)){ printf("%d = %d * %d\n",n,(d*10+a),(c*10+b));return;}
}

void main()
{
 int q;
 for(int n=1001;n<=9999;n++)
 //调用函数xiXieGui()
 xiXieGui(n);
 scanf("%d",&q);

}

输出结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值