黑马程序员技术交流社区

标题: 小花存钱问题提问 [打印本页]

作者: 黄敬璇    时间: 2015-5-2 10:53
标题: 小花存钱问题提问
小芳的妈妈每天给她2.5元钱,她都会存起来, 但是,每当这一天是存钱的第5天或者5的倍数的话,
她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。

作者: 东东西西    时间: 2015-5-2 11:02
顶顶顶  递归吗
作者: andre    时间: 2015-5-2 11:05
class XiaoLianXi{
    public static void main(String[] args){
        double money=2.5;//定义double类型的记录金额
        int day=0;//记录天数
        while (money<=100)//条件判断
        {
            
            money+=2.5;//money每天自增
            
            if (day%5==0 )//条件判断
            {
                money-=6; // 只要满足这个条件,就-6,再累加天数  否则就直接累加天数
                 day++;//天数累加
            }else
            {
                 day++;

            }
            
        }
        System.out.println(day);//输出应该74
    }
}
作者: 黄敬璇    时间: 2015-5-3 16:06
andre 发表于 2015-5-2 11:05
class XiaoLianXi{
    public static void main(String[] args){
        double money=2.5;//定义double ...

谢谢啦,学会了
作者: Dylon    时间: 2015-5-4 23:52
两种方法可以计算出结果
一种通过循环
一种通过递归,其实递归也算是循环的思想。

  1. public class XiaoHuaCunQian {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                 System.out.println(collectMoney());
  8.                 System.out.println(collectMoney_1());
  9.         }
  10.         /**通过循环计算结果*/
  11.         public static int collectMoney() {
  12.                 double count = 0;
  13.                 int n = 1;
  14.                 while (n > 0) {

  15.                         count += 2.5;

  16.                         if (n % 5 == 0) {
  17.                                 count -= 6;
  18.                         }
  19.                         if (count >= 100) {
  20.                                 return n;
  21.                         }
  22.                         n++;

  23.                 }
  24.                 return -1;
  25.         }

  26.         public static int n = 0;
  27.         public static double count = 0;
  28.         /**通过递归计算结果*/
  29.         public static int collectMoney_1() {
  30.                 count += 2.5;
  31.                 n++;
  32.                 if (n % 5 == 0) {
  33.                         count -= 6;
  34.                 }
  35.                 if (count < 100) {
  36.                         collectMoney_1();
  37.                 }
  38.                 return n;
  39.         }
  40. }
复制代码

作者: 大西洋    时间: 2015-5-5 09:21
学习~感谢分享!
作者: 大西洋    时间: 2015-5-5 09:22
Dylon 发表于 2015-5-4 23:52
两种方法可以计算出结果
一种通过循环
一种通过递归,其实递归也算是循环的思想。

递归挺绕人的~ :)
作者: major2015    时间: 2015-5-5 09:28
看这里 http://bbs.itheima.com/thread-174282-1-1.html (出处: 黑马程序员IT技术论坛)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2