吸血鬼数是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个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);
}
输出结果: