我是一名Java初学者,面临以下问题:W”编写一个程序,该程序输入一个整数,该整数将是您将读取随机数的次数(n)。
然后该程序应该计算那些随机数的总和。
我了解如何生成随机数,并设置了一个For循环来为每个用户输入生成n个随机数。
import java.util.Scanner;
import java.util.Random;
public class Example {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int n;
System.out.println("Enter a number:");
n = input.nextInt();
for (int i = 0; i < n; i++){
double randomNumber = Math.random();
System.out.println(randomNumber);
}
}
}
我的第一次尝试很费劲
System.out.println(randomNumber * randomNumber);
System.out.println(randomNumber + randomNumber);
代码底部的可能由于其他人可能显而易见的原因而无法使用。
我坚持将n个随机数存储足够长的时间来对它们进行所需的算术运算的概念。
答案 0 :(得分:1)
您应该能够仅对总和和积保持某种状态:
int n = input.nextInt();
double sum = 0d;
double product = 0d;
for (int i=0; i < n; i++) {
double randomNumber = Math.random();
sum += randomNumber;
product = i == 0 ? randomNumber : product*randomNumber;
}
System.out.println("sum = " + sum);
System.out.println("product = " + product);
该行:
product = i == 0 ? randomNumber : product*randomNumber;
等效于:
if (i == 0) {
product = randomNumber;
}
else {
product = product*randomNumber;
}
我使用的版本称为三元表达式,这是一种简洁的编写方式(如果没有逻辑)。这里的想法是我们要用第一个随机数初始化乘积。否则,我们只将乘积乘以最新的随机数。