编程求四位整数abcd

Keeping...

又开始放题了。今天这道题仅仅是题的意思都废了好半天劲才读懂,之前还一度以为这题是出错了,事实证明是我错了。

题目:(for 循环)编程找出四位整数abcd 中满足 (ab+cd)(ab+cd)=abcd 的数。

题目解析:四位整数abcd表示的是一个数(定义为i),整数i的千位数字a和百位数字b组成的一个数ab与i的十位数字c和个位数字d组成的另一个数cd之和的平方等于整数i也就是abcd。

package classwork0_8_for;
/**
 * 
 * @author Administrator
 *2018年5月16日14:59:41
 *(for 循环)编程找出四位整数abcd 中满足 (ab+cd)(ab+cd)=abcd 的数。
 */
public class Work7_find_abcd {
	//程序的入口
	public static void main(String[] args) {
		//定义一个数字a 表示千位数字 且不能为0
		for(int a=1;a<=9;a++) {
			//定义一个数字b 表示百位数字
			for(int b=0;b<=9;b++) {
				//定义一个数字c 表示十位数字
				for(int c=0;c<=9;c++) {
					//定义一个数字d 表示个位数字
					for(int d=0;d<=9;d++) {
						//满足条件(ab+cd)(ab+cd)=abcd,则输出各个位数的数字
						if(((a*10+b)+(c*10+d))*((a*10+b)+(c*10+d))==a*1000+b*100+c*10+d) {
							System.out.println(a+"\t"+b+"\t"+c+"\t"+d);
							
						}
					}
				}
			}
		}
	}
}

看完之后,老师提供了一种更简洁的方法

//定义一个四位整数i
for(int i=1000;i<=9999;i++) {
	//ab表示千位数字a和百位数字b组成的一个数
	int ab=i/100;
	//cd表示十位数字c和个位数字d组成的另一个数
	int cd=i%100;
	//满足条件(ab+cd)(ab+cd)=abcd,则输出整数i
	if((ab+cd)*(ab+cd)==i) {
		System.out.println(i);
	}
}

代码少了好多,也确实方便了不少。

今天就到这里了,如有疑问,敬请提出。

猜你喜欢

转载自blog.csdn.net/coco8023lee/article/details/80502192
今日推荐