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);
}
}
代码少了好多,也确实方便了不少。
今天就到这里了,如有疑问,敬请提出。