java程序:求小于等于某数的最大指定数
来源:百度知道 编辑:UC知道 时间:2024/09/28 09:42:09
//将指定的数减去传入的参数.然后找小于0的,并且最大的那个数(如果没有,就说明没有比指定数小的).
//1,8,5,3,9 减 6
//-5,3,-1,-3,3
//其中-1是小于0的最大数.
public int compute(int num)
{
int[] nums = new int[] { 1,8,5,3,9 }; //记录了指定的数
int len = nums.length; // 记录指定数的多少
int[] temps = new int[len]; // 假设不能修改指定的数,新建立一个数组存放差值
for(int i = 0; i < len; i++) //计算差值
{
temps[i] = nums[i] - num;
}
int temp = 0; //记录差值中小于0,并且最大的数。
int index = -1; // 记录在数组中的位置
for(int i = 0; i < len; i++)
{
if (temps[i] < 0)
{
if(temp == 0) // 如果temp为0说明这时的temps[i]为第一个小于0的数,赋给temp,并记录index
{
temp = temps[i];
index = i;
}
else if( temps[i] > temp ) //如果temps[i] >temp , 说明当前的更符合条件,替换。
{
temp = temps[i];
index = i;
}
}
}
if ( index == -1) // 如果index是-1 说明没有比传入数小的。在此返回数本身。
return num;
else
return nums[index];