【发布时间】:2017-03-28 17:12:44
【问题描述】:
我被这个项目困住了。我必须编写一个生成 HTH (121) 的硬币翻转程序,并且我必须计算生成该序列需要投掷多少次。之后,我需要计算序列的平均值。我在下面有代码。例如:如果我得到
的输出1112222222122122122211222121
28
11111122121
11
11121
5
那么我的平均值应该是 (28+11+5)/3=14.66667。但是,我坚持编码平均值。我已经设置了 for 循环,但我不确定将代码放在哪里或如何放置平均值。
我正在考虑做类似的事情
int average= count/N;
但我不知道如何将每个计数相互添加以及在没有编译器说“计数无法解析为变量”的情况下将此语句放在哪里
package HTX_Program;
public class coinSequence {
public static int coinFlip() {
MultiDie coin= new MultiDie(2);
coin.roll();
int x = coin.getFaceValue();
return x;
}
public static void main(String[] args) {
final int N=3;
for(int i=0; i<N; i++){
String sequenceSoFar = "";
sequenceSoFar += coinFlip();
sequenceSoFar += coinFlip();
sequenceSoFar += coinFlip();
int count = 3;
if(!sequenceSoFar.equals("121")) {
while(!(sequenceSoFar.substring(sequenceSoFar.length() - 3).equals("121"))) {
sequenceSoFar += coinFlip();
count++;
}
}
System.out.println(sequenceSoFar);
System.out.println(count);
}
int average= count/N;
}
}
【问题讨论】:
-
请注意,当您进行整数除法 (
count/N) 时,1/3或2/3之类的操作将返回0。如果需要小数,请使用double。 -
平均值不是 int,它应该是 double
double avarage = count * 1.0 / N ;你还需要乘以1.0,否则会产生 int 除法。 -
好的,谢谢。我忘了!
标签: java