猴子吃桃、金字塔


1.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,只见剩下一个桃子了。求第一天共摘了多少。
/**
 *  程序分析:采取逆向思维的方法,从后往前推断。
 *  第10天时,只剩下1个桃子
 *  不难推断当第9天的时候剩下4个桃子,第8天剩下10个桃子
 *  我们可以采用for循环从第10天开始
 *  第10天桃子数n = 1;第九天 n = (1 + 1) * 2  或者  n = (n + 1) * 2
 */

public class Test {
    public static void main(String[] args) {
        int n = 1;
        // 第10天桃子n = 1;所以从第9天开始计算
        for (int i = 9; i > 0; i--) {
            n = (n + 1) * 2;
        }
        System.out.println("总共摘了"+ n + "个桃子!");
    }
}


2.打印金字塔
import java.util.Scanner;
/**
 *  打印出一座金字塔
 *  题目分析                    *
 *                            ***
 *                           *****
 *                          *******
 *  第1行1个*                  第1行3个空格
 *  第2行3个*                  第2行2个空格
 *  第3行5个*                  第3行1个空格
 *  第4行7个*                  第4行0个空格
 *  第i行:i * 2 - 1 个*        第i行:n(总行) - i(行)个空格
 *  循环j=j <= 2 * i - 1       循环k = 0; k < n - i;k++
 */
public class Test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        for (int i = 1; i <= n; i++) {
            for (int k = 0; k < n - i;k++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= 2 * i - 1;j++) {
                System.out.print("*");
            }
            System.out.println("");
        }
    }
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值