检查数组的总和必须小于最大时间

问题描述:

检查数组的总和小于最大时间,如果是,则随机数生成器将停止,输出会是这样:检查数组的总和必须小于最大时间

No of customer = 3  
max time = 4;   
customer 1 = 3  
customer 2 = 1   
total time = 4   
//so the customer 3 a 

类CstplangsBadango

package cstplangsbadango; 

import java.io.*; 
import java.util.Random; 
import java.util.Scanner; 

public class CstplangsBadango { 


    static int customer = 0; 
    static int maxTime = 0; 

    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     Random rand = new Random(); 

     System.out.print("Enter number of customer: "); 
     customer = sc.nextInt(); 

     System.out.print("Enter number of Maximum time: "); 
     maxTime = sc.nextInt(); 
     System.out.println(" "); 

     int[] cust = new int[customer]; 
     int j = 0; 
     int sum = 0; 
     int sum1 = 0; 
     int chu = 0; 
     for (int i = 0; i < cust.length; i++) { 

      cust[i] = (int) randomFill(); 

      j += 1; 
      sum += cust[i]; 
      System.out.println("Customer #" + j + " = " + cust[i]);  

     } 

     System.out.println(" "); 
     System.out.println("Maximum time: " + sum); 


    } 

    public static double randomFill() { 

     Random rand = new Random(); 
     int randomNum = rand.nextInt(3) + 1; 
     return randomNum; 
    } 

    } 
+0

客户3那么到时候顾客2达到它消耗已经4的计数器,它的最大时间 –

+3

你有一个问题,删除,因为?你刚刚说出了你的家庭作业问题并发布了一些代码,但看起来你忘了提问。 – Jesper

+2

wheres问题?请说明您目前有什么问题。 – abcOfJavaAndCPP

for (int i = 0; i < cust.length; i++) { 
    cust[i] = (int) randomFill(); 
} 

for (int i = 0; i < cust.length; i++) { 
    int newSum = sum + cust[i]; 

    if (sum < maxTime) { 
     sum = newSum; 
    } else if(sum == maxTime) { 
     sum = newSum; 
     break; 
    } else { 
     break; 
    } 

    j++; 
    System.out.println("Customer #" + j + " = " + cust[i]); 

} 

您必须排除您的发言

j+=1; 
sum += cust[i]; 
System.out.println("Customer #" + j + " = " + cust[i]) 

当您填写创建创建循环下方另一个循环的阵列

for(int i=0;i<cust.length;++i) 
{ 
     j+=1; 
     sum+=cust[i]; 
     if(sum>=MAX_TIME) 
     { 
      i=cust.length; 
      System.out.println("Customer #" + j + " = " + cust[i]); 
     } 

} 

if(sum>MAX_TIME) 
{ 
    int subtractor=sum-MAX_TIME; 
    sum-=subtractor; 
} 
+0

每当我输入一个奇数值的最大时间总时间超过最大时间... –

+0

@JeraldBadango你想总时间不超过最大时间吗? – abcOfJavaAndCPP

+0

是的,但显示的总时间超出了最长时间 –