A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhxu188 中级黑马   /  2014-3-19 09:29  /  1884 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

歌曲“99瓶啤酒”的第一节是这样的:
99瓶啤酒在墙上,99瓶啤酒,拿下一瓶,传给他人,98瓶啤酒在墙上。
随后的歌词和前面相似,但啤酒瓶的数量越来越少,直到拿完最后一瓶时,歌曲如下:
没有啤酒在墙上,没有啤酒,不能再拿了,不能再传了,因为墙上没有啤酒了。
此时歌曲结束。


写一个程序,打印出“99瓶啤酒”这首歌的全部歌词。程序应该包含一个递归方法,除此之外还应该有另外方法来拆分程序的主要功能。



大神求教,这个程序该如何写呢

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 老貓钓鱼 于 2014-3-19 10:15 编辑
  1. public class TestDemo {
  2.         public static void main(String[] args) {
  3.                 for (int i = 99; i >= 0; i--) {
  4.                         if (i == 0) {
  5.                                 System.out.println("没有啤酒在墙上,没有啤酒,不能再拿了,不能再传了,因为墙上没有啤酒了。");
  6.                                 break;
  7.                         }
  8.                         System.out.println(i + "瓶啤酒在墙上," + i + "瓶啤酒,拿下一瓶,传给他人," + (i - 1)
  9.                                         + "瓶啤酒在墙上。");
  10.                 }
  11.         }
  12. }
复制代码



一个for循环搞定

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报 1 0
  1. public static int method(int i){
  2.                 int temp = i;
  3.                 if(i==1){
  4.                         System.out.println(temp+"瓶啤酒在墙上,"+temp+"瓶啤酒,拿下一瓶,传给他人,"+(temp-1)+"瓶啤酒在墙上");
  5.                         return temp;
  6.                 }
  7.                 else{
  8.                         System.out.println(temp+"瓶啤酒在墙上,"+temp+"瓶啤酒,拿下一瓶,传给他人,"+(temp-1)+"瓶啤酒在墙上");
  9.                 }
  10.                 return method(temp-1);
  11.                
  12.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
  1.   int j = 99;//一共有的酒
  2.   while (j != 0) {
  3.    System.out.println(j + "瓶啤酒在墙上," + j + "瓶啤酒,拿下一瓶,传给他人," + (j - 1) + "瓶啤酒在墙上。");
  4.    j--;
  5.   }
  6.   System.out.println("没有啤酒在墙上,没有啤酒,不能再拿了,不能再传了,因为墙上没有啤酒了。");
复制代码


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马