文档库 最新最全的文档下载
当前位置:文档库 › java实例田径赛跑

java实例田径赛跑

田径赛跑中,有8条跑道,从键盘输入一个整数n(n>8)作为参加比赛的选手人数,安排分组要求人数差距最少,依次打印输出每组安排的选手人数。



package com;

import java.util.Scanner;

public class Test2 {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入人数...");
int a = in.nextInt();
int n = a/8;
int t = a%8;
System.out.println(t+"--------"+n);

if(t==0){
for(int i= 1;i<=8;i++){
System.out.println("第"+i+"条跑道有"+n+"人");
}
}
if(t>0){
for(int i= 1;i<=t;i++){
System.out.println("第"+i+"条跑道有"+((n*8)+1)+"人");
}

for(int i= t+1;i<=8;i++){
System.out.println("第"+i+"条跑道有"+((n*8))+"人");
}


}

}
}





先确定需要多少组
int zushu = (n+7)/8;
差数最少,那就是1.所以先确定组的最少人数。然后在确定有多少组需要加1人。
int zuishaorenshu = n / zushu;
int jia1zushu = n % zushu;
然后循环输出每组人数。
for (int i = 0; i < zushu; i++) {
if (i >= jia1zushu) {
System.out.println(zuishaorenshu);
} else {
System.out.println(zuishaorenshu + 1);
}
}
这样就行了吧。




Java code

public static void main(String[] args) throws DocumentException { Scanner in = new Scanner(System.in); System.out.println("请输入人数..."); int num = in.nextInt(); boolean m = false; int groups = num % 8 == 0 ? num / 8 : num / 8 + 1; System.out.println("共分为" + groups + "组"); while (groups >= 1) { System.out.println("第"+groups+"组人数:" + num / groups); num = num - num / groups; groups--; } }



结果:
请输入人数...
14
共分为2组
第2组人数:7
第1组人数:7


请输入人数...
46
共分为6组
第6组人数:7
第5组人数:7
第4组人数:8
第3组人数:8
第2组人数:8
第1组人数:8

请输入人数...
98
共分为13组
第13组人数:7
第12组人数:7
第11组人数:7
第10组人数:7
第9组人数:7
第8组人数:7
第7组人数:8
第6组人数:8
第5组人数:8
第4组人数:8
第3组人数:8
第2组人数:8
第1组人数:8






Scanner in = new Scanner(System.in); System.out.println("请输入人数..."); int x = in.nextInt(); int i = 8; int m = x/8; int mod = x%8; int count = 0; int group = 0; if (mod == 0) { group = m; count = i; } else { group = m+1; count = x/(group); } if (x%(group) != 0) { int a = 0; for (int j = 0; j < x%(group); j++) { System.out.println("第" + (++a) + "组共" + (count + 1) + "人"); } for (int j = 0; j < (group)-(x%(group)); j++) { System.out.println("第" + (++a) + "组共" + count + "人"); } } el

se { for (int j = 0; j < m+1 ; j++) { System.out.println("第" + j + "组共" + count + "人"); } }





import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/* 田径赛跑中,有8条跑道,从键盘输入一个整数n(n>8)
作为参加比赛的选手人数,安排分组要求人数差距最少,依次打印输出每组安排的选手人数。 */

public class Test2{

public static void main(String [] args){

System.out.println("请输入参赛人数:\n");
try {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String getinput=br.readLine();
int inpu=Integer.valueOf(getinput);
int ever=inpu/8; //每组
int sy=inpu%8; //剩余
int a[]=new int[8];
for(int i=0;isy--;
a[i]+=1;
}
for(int i=0;i<8;i++){
a[i]+=ever;
System.out.println("第"+(i+1)+"组人数是:"+a[i]+"\n");
}

} catch (IOException e) {
e.printStackTrace();
}

}
}













public static void main(String[] args) {
int n=0;
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
n=sc.nextInt();
int avg=n/8;
int other=n%8;
int[]a=new int[8];
for(int i=0;i<8;i++){
a[i]=avg;
}
for(int i=0;ia[i]=a[i]+1;
}
for(int i=0;i<8;i++)
System.out.println("第"+i+"个跑道人数"+a[i]);
}





}







相关文档