Java学习——编程作业(2)吸血鬼数字

【问题描述】

【问题描述】吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘得到,这对数字各包含乘积的一半位数的数字,数字选取后可任意排序,例如: 1260=21×60 1827=21×87 2187=27×81。写出一个程序,找出4位数的所有吸血鬼数字。
【输入形式】无
【输出形式】输出所有的吸血鬼数字,数字之间已空格分隔。
【样例输入】无
【样例输出】1260 1395 1435 1530 1827 2187 6880

【问题分析】

就是将所有1000-9999的四位数,拆分成4个数字,再将这4个数两两组成一个两位数,将这两个两位数进行相乘,若存在这样的两个两位数相乘结果等于原来的四位数,那么就输出这个四位数。

【代码】

public class Ex4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] a=new int[4];
		int[] n1=new int[2];
		int[] n2=new int[2];
		int num,c1,c2;
		for(int i=1000;i<10000;i++)
		{
			mult:
			{
				num=i;
				for(int j=0;j<4;j++)
				{
					a[j]=num%10;
					num/=10;
				}
				for(int j=0;j<4;j++)
				{
					for(int k=j+1;k<4;k++)
					{
						for(c1=0;c1==j||c1==k;c1++);
						for(c2=1;c2==j||c2==k||c2==c1;c2++);
						n1[0]=a[j]*10+a[k];
						n1[1]=a[j]+a[k]*10;
						n2[0]=a[c1]*10+a[c2];
						n2[1]=a[c2]*10+a[c1];
						for(int m=0;m<2;m++)
						{
							for(int l=0;l<2;l++)
							{
								if(n1[m]*n2[l]==i)
								{
									System.out.print(i+" ");
									break mult;
								}
							}
						}
					}
				}
			}
		}
	}

}

【学习】

在使用标记的时候,若标记中包含有多条语句,那么要加一个{},否则不能识别到会报错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值