我在数学方面很弱,我需要一些关于最小值和最大值计算的帮助吗?
假设将 MinValue视为200,将MaxValue视为1000 。
将 MinValue和MaxValue除以5 (此处对我来说只需要显示五个值)
以下是我实施的代码。
double initalValue = 200;
double finalValue = 1000;
double range = finalValue - initalValue;
double designCalRange = range/5;
double intialrange = initalValue;
System.out.println("designCalRange::>"+designCalRange);
System.out.println("AtuaValue::>"+Math.ceil(intialrange));
System.out.println("RoundOffValue::>"+Math.ceil(intialrange/100)*100 + "\n");
for (double i = 1; i<=5;i++){
intialrange += designCalRange;
System.out.println("\n"+"AtuaValue::>"+Math.ceil(intialrange));
System.out.println("RoundOffValue::>"+Math.ceil(intialrange/100)*100);
}
}
而我的OutPut是 **
RoundOffValue::>200.0
RoundOffValue::>400.0
RoundOffValue::>600.0
RoundOffValue::>700.0
RoundOffValue::>900.0
RoundOffValue::>1000.0
**
但它应该是:
RoundOffValue::>200.0
RoundOffValue::>400.0
RoundOffValue::>600.0
RoundOffValue::>800.0
RoundOffValue::>1000.0
答案 0 :(得分:1)
你期待如下
更新为显示5个值
public class Test {
public static void main(String[] args) {
int initalValue = 200 ;
int finalValue = 1000 ;
int range = finalValue - initalValue;
int designCalRange = range/4;
System.out.println("Dividing in to 5 equal intervals");
System.out.println(initalValue);
for (double i = 1; i<=3;i++){
System.out.println((int)(initalValue+designCalRange));
initalValue = initalValue+ designCalRange;
}
System.out.println(finalValue);
}
}
答案 1 :(得分:0)
这将解决
public class DivideBy5 {
public static void main(String[] args) {
int minvalue = 300;
int maxvalue = 900;
int increment = (maxvalue - minvalue) / 5;
int n=minvalue;
for(int i = 1;i <=5;i++)
{
n=n+increment;
System.out.println(n);
}
}
}
答案 2 :(得分:0)
我不确定你需要什么,但这听起来像是Paul Heckbert's Nice Numbers algorithm
的问题给定“轴”的最小值,最大值和步长,算法将计算“轴”的“最漂亮”数字
想象一下,就像你有一个轴,你不会把蜱放在漂亮的圆形数字上。无论数字有多大或多小。
Google导致了Implementation in C#
答案 3 :(得分:0)
您遇到fencepost(off-by-one)错误。如果您想显示五个均匀间隔的数字,包括MIN和MAX,则需要将范围除以4
,而不是5
。
除以5后,得到160
。你可以轻松地告诉这不是你想要的步骤,因为它是这样的:
200 -> 200
360 -> 400
520 -> 600
680 -> 700
840 -> 900
1000 -> 1000
当你除以4时,步长为200
,这是完美的:
200 -> 200
400 -> 400
600 -> 600
800 -> 800
1000 -> 1000