妹子求助一道编程题,想了半天完全没思路

darkfaceg 2014-01-25 09:32:20
小明的妈妈每天会给他20元零花钱。

平日里,小明先花掉一半,再把一半存起来。

每到周日,小明拿到钱后会把所有零花钱花掉一半。

请编程计算,从周一开始,小明需要多少天才能存够100元?
...全文
983 点赞 收藏 41
写回复
41 条回复
weiyastory 2016年06月14日
/** * 小明的妈妈每天会给他20元零花钱。 平日里,小明先花掉一半,再把一半存起来。 每到周日,小明拿到钱后会把所有零花钱花掉一半。 请编程计算,从周一开始,小明需要多少天才能存够100元? */ public class T { public static void main(String[] args) { int day = 1; while(day>0){ if(day%7 !=0){ int week = day/7; int day2 = day%7; int money = 10*day2+40*week*(1+(int)(Math.pow(2, week-1)))/((int)(Math.pow(2, week))); if(money==100){ System.out.println("第"+day+"天存"+money+"元钱"); break; } }else{ int week = day/7; int money = 40*week*(1+(int)(Math.pow(2, week-1)))/((int)(Math.pow(2, week))); if(money==100){ System.out.println("第"+day+"天存"+money+"元钱"); break; } } day++; } } }
回复 点赞
ywf920421 2014年02月11日
public static void main(String[] args) { // TODO Auto-generated method stub float balance = 0;// 小明的余额 int day = 0; while (balance < 100) { day++; if (day % 7 == 0) { balance += 20; balance = balance / 2; } else { balance += 10; } System.out.println("day:" + day + "balance:" + balance); } System.out.println("一共需要:" + day + "天"); }
回复 点赞
快乐的小呆 2014年02月10日
首先小明拿到钱后会把所有零花钱花掉一半代表拿到钱后再花一半,即先把剩余零花钱加上20元再除以2。 其次平日里每到周日说明,平日按平日算,周日按周日算,周日拿到的零花钱并不会像平日里拿到钱先花一半,而是先汇总再花汇总之后的一半。
回复 点赞
倔强的蜗牛在攀爬 2014年02月09日
纠正下for(int CurrentDays=1;;CurrentDays++)不是CurrentDays=0
回复 点赞
倔强的蜗牛在攀爬 2014年02月09日
小明的妈妈每天会给他20元零花钱。 平日里,小明先花掉一半,再把一半存起来。 每到周日,小明拿到钱后会把所有零花钱花掉一半。 请编程计算,从周一开始,小明需要多少天才能存够100元? 说下我的思路吧!楼上很多代码!先声明变量当前天数CurrentDays零花钱PocketMoney 首先读到“每到周日,小明拿到钱后会把所有零花钱花掉一半。” 说明书一个循环的问题可以考虑用取余的方法进行,也就是当前是第几天的天数CurrentDays%7==0的时候 PocketMoney=PocketMoney/2.0 连起来就是 for(int CurrentDays=0;;CurrentDays++){ if(CurrentDays%7==0){ PocketMoney=PocketMoney/2.0 }else{ PocketMoney+=20.0/2 } if(PocketMoney>=100){ break; } }
回复 点赞
日知己所无 2014年02月09日
27楼的答案是正解 另外,楼主的本意应该是:有一个妹子向他求助一个问题,他没有思路才来提问,并不是说他本人就是那个妹子……
回复 点赞
闲去野鹤 2014年02月09日
文档不清析,就这样的需求如何开发?
回复 点赞
ybyq_xyl 2014年02月09日
果然妹子讨人欢心啊,提个问题这么受大家欢迎。。。
回复 点赞
sca4441479 2014年02月08日

//m钱,x天数
int m=0,x=0;
    	while(m<100){
    		x++;
    		if(x%7==0){
    			m=(m+20)/2;
    		}else{
    			m=m+20/2;
    		}
    		System.out.println("第"+x+"天,"+m+"元钱");
    	}
    	System.out.println(x+"天,"+m+"元钱");
打印结果: 第1天,10元钱 第2天,20元钱 第3天,30元钱 第4天,40元钱 第5天,50元钱 第6天,60元钱 第7天,40元钱 第8天,50元钱 第9天,60元钱 第10天,70元钱 第11天,80元钱 第12天,90元钱 第13天,100元钱 13天,100元钱
回复 点赞
miss味道 2014年02月08日
1 天存 10 (元) 2 天存 20 (元) 3 天存 30 (元) 4 天存 40 (元) 5 天存 50 (元) 6 天存 60 (元) 7 天存 40 (元) 8 天存 50 (元) 9 天存 60 (元) 10 天存 70 (元) 11 天存 80 (元) 12 天存 90 (元) 13 天存 100 (元) 所以结果为13天。 不好意思上面换行,自动提交了。这个是正确的。
回复 点赞
miss味道 2014年02月08日
1 天存 10 (元) 2 天存 20 (元) 3 天存 30 (元) 4 天存 40 (元) 5 天存 50 (元) 6 天存 60 (元) 7 天存 40 (元) 8 天存 10 (元) 9 天存 10 (元) 8 天存 10 (元) 9 天存 10 (元) 8 天存 10 (元) 9 天存 10 (元)
回复 点赞
miss味道 2014年02月08日
/**
 * 
 * @author admin
 * @version $Id: Test.java, v 0.1 Feb 8, 2014 3:55:57 PM admin Exp $
 */
public class Test {

    public int getDayForSaveMoney(){
        int day = 0;
        int money = 0;
        
        while(money<100){
            day++;//天数加1
            if(day%7>0){
                money += 20/2;//周一到周六花一半存一半                
            }else{
                money = (money+20)/2; //周日所有零花钱花掉一半。 之前的零花钱加上周日20元零花钱               
            }
            System.out.println(day+" 天存 "+money+"(元)");
        }
        System.out.println("一共需要 "+day+" 天才能存够100元");
        
        return day;
        
        
        
        
    }
    /*
    小明的妈妈每天会给他20元零花钱。

    平日里,小明先花掉一半,再把一半存起来。

    每到周日,小明拿到钱后会把所有零花钱花掉一半。

    请编程计算,从周一开始,小明需要多少天才能存够100元?*/
      public static void main(String[] args) {
        Test test = new Test();
        test.getDayForSaveMoney();
    }
}
回复 点赞
u010334357 2014年02月08日
public class TTT { public static void main(String[] args) { double count=0; for(int i=1;;i++){ count+=10; if(count>=100){ System.out.println(i-1); break; } if(i%7==0){ count=count-count/2; } } } }
回复 点赞
duxingtianxia 2014年01月29日
#include<iostream>
using namespace std;

int computeDay(){
int day = 0;
int money = 0;
while(money < 100){
day++;
if (day % 7 == 0){
money = money + 20;
money = money/2;
}else{
money = money + 10;
}
}

return day;
}

int main(){
cout<<computeDay()<<endl;
}

回复 点赞
风青云 2014年01月27日
public class test { public static void main(String[] args) { System.out.println(save()); } static int save() { int day = 1,money = 20; while(money < 100) { money = (day%7==0)?(money/2):(money-10); money +=20; day++; } return day; } } 12
回复 点赞
猪猪LOVE霏儿 2014年01月27日
引用 19 楼 zyc13701469860 的回复:

/**
 * 小明的妈妈每天会给他20元零花钱。
 * 平日里,小明先花掉一半,再把一半存起来,
 * 每到周日,小明拿到钱后会把所有零花钱花掉一半。
 * 请编程计算,从周一开始,小明需要多少天才能存够100元?
 * 
 * @author zyc
 */
public class Test021 {
	public static void main(String[] args) {
		System.out.println(save());
	}

	static int save() {
		int day = 0,money = 0;
		while(money < 100) {
			money = (++day % 7 == 0) ? (money + 20) / 2 : money + 10;
		}
		return day;
	}
}
这个好啊。
回复 点赞
星河千幻 2014年01月27日
楼上有好几位都没看清楚题目: 人家说的是: 每到周日,小明拿到钱后会把所有零花钱花掉一半。 拿到钱之后,就是要加上20元再除以2;
public class Test {
	public static void main(String[] args) {
		double countMoney = 0;
		final double money = 20;
		int result = 0;
		for(int i=1;countMoney<=100;i++) {
			
			if(countMoney>=100) {
				break;
			}
			
			result++;
			
			if(i % 7 == 0) {
				countMoney += money; 
				countMoney /= 2;
				System.out.println("第" + result + "天,小明手上的钱余额为: " + countMoney);
				continue;
			}
			countMoney += (money / 2);
			System.out.println("第" + result + "天,小明手上的钱余额为: " + countMoney);
		}
		System.out.println("小明攒够100元,总共花了" + result + "天");
	}
}
输出结果: 第1天,小明手上的钱余额为: 10.0 第2天,小明手上的钱余额为: 20.0 第3天,小明手上的钱余额为: 30.0 第4天,小明手上的钱余额为: 40.0 第5天,小明手上的钱余额为: 50.0 第6天,小明手上的钱余额为: 60.0 第7天,小明手上的钱余额为: 40.0 第8天,小明手上的钱余额为: 50.0 第9天,小明手上的钱余额为: 60.0 第10天,小明手上的钱余额为: 70.0 第11天,小明手上的钱余额为: 80.0 第12天,小明手上的钱余额为: 90.0 第13天,小明手上的钱余额为: 100.0 小明攒够100元,总共花了13天
回复 点赞
一条大菜鸟 2014年01月27日
引用 19 楼 zyc13701469860 的回复:

/**
 * 小明的妈妈每天会给他20元零花钱。
 * 平日里,小明先花掉一半,再把一半存起来,
 * 每到周日,小明拿到钱后会把所有零花钱花掉一半。
 * 请编程计算,从周一开始,小明需要多少天才能存够100元?
 * 
 * @author zyc
 */
public class Test021 {
	public static void main(String[] args) {
		System.out.println(save());
	}

	static int save() {
		int day = 0,money = 0;
		while(money < 100) {
			money = (++day % 7 == 0) ? (money + 20) / 2 : money + 10;
		}
		return day;
	}
}
回复 点赞
jiekou0704 2014年01月27日
每到周日,小明拿到钱后会把所有零花钱花掉一半。 从这句话来分析看,,小明周日拿到钱后,这个‘钱’到底是10还是20。。。 就会出现两种结果了。。
回复 点赞
Mourinho 2014年01月27日

/**
 * 小明的妈妈每天会给他20元零花钱。
 * 平日里,小明先花掉一半,再把一半存起来,
 * 每到周日,小明拿到钱后会把所有零花钱花掉一半。
 * 请编程计算,从周一开始,小明需要多少天才能存够100元?
 * 
 * @author zyc
 */
public class Test021 {
	public static void main(String[] args) {
		System.out.println(save());
	}

	static int save() {
		int day = 0,money = 0;
		while(money < 100) {
			money = (++day % 7 == 0) ? (money + 20) / 2 : money + 10;
		}
		return day;
	}
}
回复 点赞
发动态
发帖子
Java EE
创建于2007-09-28

3.7w+

社区成员

22.5w+

社区内容

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区公告
暂无公告