早点醒~ 2023-10-23 20:32 采纳率: 33.3%
浏览 7

是用递归还是循环做呀

img

小明昨天摘了不少苹果。第一天他吃了这些苹果的一半,又贪吃了一个;接下来的每一天它都会吃剩余的苹果的一半外加一个。第n(n≤20)天早上起来发现,只剩下1个苹果了。请问小明一共摘了多少个苹果?

  • 写回答

2条回答 默认 最新

  • 易只轻松熊 2023-10-23 21:34
    关注
    
    public class Main {  
        public static void main(String[] args) {  
            int n = 20; // 第n天发现只剩一个苹果  
            int x = 0; // 初始的苹果数量  
            for (int i = 0; i < n; i++) {  
                x = (x + 1) * 2; // 根据上述关系式进行计算  
            }  
            System.out.println("小明一共摘了" + x + "个苹果。");  
        }  
    }
    
    
    
    ------------------------------------------------------------------------------------
    
    
    
    
    public class Main {  
        public static void main(String[] args) {  
            int n = 20; // 第n天发现只剩一个苹果  
            int x = daysToApple(n);  
            System.out.println("小明一共摘了" + x + "个苹果。");  
        }  
          
        // 使用递归计算小明摘了多少个苹果  
        public static int daysToApple(int n) {  
            if (n == 1) {  
                return 1; // 第一天只剩1个苹果  
            } else {  
                return (daysToApple(n - 1) + 1) * 2; // 剩余的苹果的一半加1  
            }  
        }  
    }
    
    
    评论

报告相同问题?

问题事件

  • 修改了问题 10月23日
  • 创建了问题 10月23日