java案例分析

第一题:
问:有一个输出语句System.out.print(“@”)。使用这个语句,在控制台打印出一个五行的三角形,效果如下:
​ @
​ @@
​ @@@
​ @@@@
​ @@@@@
提示:
1.已知条件中只有一个@,如何产生多行的符号?
2.每行的打印个数不同,循环的次数如何控制?
方案:
使用for循环的嵌套完成。
操作步骤:
1.定义循环执行5次代表一共5行
2.定义内层循环执行i次代表每行打印的个数是i
3.在内层循环中输出符号
4.每行结束之后执行换行操作

参考答案

public class Demo3 {
    public static void main(String[] args) {
        //1.外层循环代表4行
        for (int i = 1; i <= 5; i++) {
            //2.内层循环代表每行打印i个
            for (int j = 0; j < i; j++) {
                //3.打印每个@
                System.out.print("@");
            }
            //4.每行结尾执行换行操作
            System.out.println();
        }
    }
}

2.例题2
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程 找出1000以内的所有完数。(因子:除去这个数本身的其它约数)
分析:
在这里我们要了解完数,就是出去这个数本数的其它约数,比如6,它的约数有1、2、3、6。而6=1+2+3。像4,它的约数有1、 2 、2 、4。而它明显不是约数。所以我们在这里要用循环嵌套来解决这个问题。

public class Zuixiao {
    public static void main(String [] args) {
    	for(int i = 1; i <= 1000; i++) {
			// 定义i=1,范围在1000以内,每次i都加1.
    		int num = 0;
		// 定义 num=0.
    		for(int j = 1; j<i ; j++) {
				// 循环 先定义j=1,j<i,每次j都加1.
    			if( i % j == 0) {
    				num += j;
				/*这里是最关键的,在这里因为j定义的是1,所以在if语句里首先都给num赋值一个1,
				所以解决了这个数的约数本身以及一的问题,而在这里for和if是在筛选出每个数的约数;
				*/
    			}
    		}
    		if(i == num) {  //而这里就是补全最后一步,i除以j没有余数的有很多,但是时完数的少,这里就是验证是否为完数
    			System.out.println(i + "是完数");
    		}
    	}
    	
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值