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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© BlueSun 中级黑马   /  2015-9-2 11:18  /  930 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

你身上有一笔钱,你遇到第一个乞丐的时候,给了你身上钱的一半再多加2元,当你遇到第二个乞丐的时候,又给了你身上钱的一半再多加4元,这时候你身上只有5元,问你原来多少钱?
  1. public static void main(String[] args)

  2. {
  3. int num=0;

  4. while(true)
  5. {
  6. num++;

  7. int a=num/2+2;

  8. int b=(num-a)/2+4;

  9. if(num==a+b+5)
  10. break;


  11. }
  12. System.out.println(num);


  13. }
复制代码

我这个程序错在哪了,答案因该是40,我这程序37

6 个回复

倒序浏览
将int改为double,因为钱分一半,有可能是小数
回复 使用道具 举报
你这个 Int类型的做除法运算会取整 所以37就是符合题目的答案 循环结束 答案就是37
回复 使用道具 举报
freehello 发表于 2015-9-2 11:39
将int改为double,因为钱分一半,有可能是小数

改小数也不行的 兄弟!
回复 使用道具 举报
lostyou 发表于 2015-9-2 11:48
你这个 Int类型的做除法运算会取整 所以37就是符合题目的答案 循环结束 答案就是37 ...

不符合,题目说分一半,没说不能分成小数
回复 使用道具 举报
本帖最后由 freehello 于 2015-9-2 12:00 编辑
lostyou 发表于 2015-9-2 11:50
改小数也不行的 兄弟!

可以啊,我刚试的,答案40.0,记得全改
回复 使用道具 举报
二楼正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马