一道编程题——求解!! 李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)小弟怎么也想不通,求高手讲解,先谢过了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for(){ if(){ }else{ }}遇店加一倍,见花喝一斗,五遇花和店条件给的如此齐,楼主没敲代码吧? 这个我知道啊,可是变量之间的关系搞不通,我是初学者,麻烦了。我写的错误代码如下:import java.util.*;public class lilun4 { /** * @param args */ public static void main(String[] args) { int jiu=0; Scanner input=new Scanner(System.in); System.out.print("遇到h还是d?:"); String a=input.next(); for(int i=1;i<=5;i++) { if(a=="h") { jiu=jiu-1; } else if(a=="d") { jiu=jiu*2; } System.out.println(jiu); } }} double wine = 0;for(int i=0;i<5;i++){wine =(wine+1)/2;System.out.println(wine);} 很简单啊!这是反推的过程,假设李白从第五家花店倒推回来的流程,最后酒壶数就是原来的酒量数。那么,李白第一个碰上的必须是花,也就是正常顺序的第五家。所以第一个wine=(wine+1)/2;循环5次后,就得酒数了,有何想不通的? 楼上说的对.import java.util.*;public class Test1{ public static void main(String[] args){ //josephus(8,3); System.out.println(liBai()); } public static float liBai(){ float x=0.0f; for(int i=5;i>=1;i--){ x+=1; System.out.println("第"+i+"次遇到花店前,壶中洒为:"+x); x/=2; System.out.println("第"+i+"次遇到酒店前,壶中洒为:"+x); } return x; }}F:\java>java Test1第5遇到花店前,壶中洒为:1.0第5遇到酒店前,壶中洒为:0.5第4遇到花店前,壶中洒为:1.5第4遇到酒店前,壶中洒为:0.75第3遇到花店前,壶中洒为:1.75第3遇到酒店前,壶中洒为:0.875第2遇到花店前,壶中洒为:1.875第2遇到酒店前,壶中洒为:0.9375第1遇到花店前,壶中洒为:1.9375第1遇到酒店前,壶中洒为:0.968750.96875 public static float ramble() { float wine = 1; List<String> sign = new ArrayList<String>(); sign.add("flower"); for (int i = 0; i < 4; i++) { int flag = (int) (Math.random() * 10) % 2; // flower if (flag == 0) { wine = wine + 1; sign.add("flower"); } else { // shop wine = wine / 2; sign.add("shop"); } } System.out.print("step : "); for(int i=1; i<=sign.size(); i++) { System.out.print(sign.get(sign.size() - i) + "\t"); } return wine; } 有关 jxl的问题,求高手解答 java程序自学手册 如何将JFrame拆分为几分 请教一个数组问题 ThinkInJava里的一个例程,没看明白,请指点。 关于日期的计算 网页中的applet老是说找不到类 如何将字符数组赋给字符串? 好消息!本公司招骋JAVA开发工程师 高分求解 - TOMCAT中的内存泄漏问题…… 关于Graphics java游戏的背景平移
if(){
}else{ }
}
遇店加一倍,见花喝一斗,五遇花和店条件给的如此齐,楼主没敲代码吧?
我写的错误代码如下:
import java.util.*;
public class lilun4 { /**
* @param args
*/
public static void main(String[] args)
{
int jiu=0;
Scanner input=new Scanner(System.in);
System.out.print("遇到h还是d?:");
String a=input.next();
for(int i=1;i<=5;i++)
{
if(a=="h")
{
jiu=jiu-1;
}
else if(a=="d")
{
jiu=jiu*2;
}
System.out.println(jiu);
} }}
for(int i=0;i<5;i++){
wine =(wine+1)/2;
System.out.println(wine);
}
import java.util.*;
public class Test1{
public static void main(String[] args){
//josephus(8,3);
System.out.println(liBai()); }
public static float liBai(){
float x=0.0f;
for(int i=5;i>=1;i--){
x+=1;
System.out.println("第"+i+"次遇到花店前,壶中洒为:"+x);
x/=2;
System.out.println("第"+i+"次遇到酒店前,壶中洒为:"+x);
}
return x;
}
}
F:\java>java Test1
第5遇到花店前,壶中洒为:1.0
第5遇到酒店前,壶中洒为:0.5
第4遇到花店前,壶中洒为:1.5
第4遇到酒店前,壶中洒为:0.75
第3遇到花店前,壶中洒为:1.75
第3遇到酒店前,壶中洒为:0.875
第2遇到花店前,壶中洒为:1.875
第2遇到酒店前,壶中洒为:0.9375
第1遇到花店前,壶中洒为:1.9375
第1遇到酒店前,壶中洒为:0.96875
0.96875
float wine = 1;
List<String> sign = new ArrayList<String>();
sign.add("flower"); for (int i = 0; i < 4; i++) {
int flag = (int) (Math.random() * 10) % 2; // flower
if (flag == 0) {
wine = wine + 1;
sign.add("flower");
} else {
// shop
wine = wine / 2;
sign.add("shop");
} }
System.out.print("step : ");
for(int i=1; i<=sign.size(); i++) {
System.out.print(sign.get(sign.size() - i) + "\t");
}
return wine;
}