今天来讲到第三题练习题
题目的大意就是:
有一个小弟弟正在玩积木,然後说他盖了一个城墙。
但他姐姐说,那才不是城墙,城墙应该要一样高才对。
所以我们必须把积木排成同样高度的城墙
然後题目给的输入是
6
5 2 4 1 7 5
0
程序码如下:
import java.util.*;
import static java.lang.System.*;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int time = 0;
while(sc.hasNext())
{
time++;
int a = sc.nextInt();
if(a == 0)
{
continue;
}
int arr[] = new int[a];
for(int i = 0 ; i < a ; i++)
{
arr[i] = sc.nextInt();
}
int total = 0;
for(int i : arr)
{
total += i;
}
total /= a;
int sum = 0;
for(int i : arr)
{
if(total - i >= 0)
sum += (total - i);
}
System.out.printf("Set #%d\r\n",time);
System.out.println("The minimum number of moves is "+sum+".");
System.out.printf("\r\n");
}
}
};
为了怕新的东西有点生疏,这次再复习一次
Scanner:取得使用者输入的数字或字串。System.in就是系统的输入。
hasNext:常用判断是否还有输入的数字或字串。
nextInt:只读取数字,剩下"\n"还没有读取。
total /= a 就是 total = total/a。
int a = sc.nextInt();
设定一个整数a,a等於取到的数值
int arr[] = new int[a];
for(int i = 0 ; i < a ; i++)
{
arr[i] = sc.nextInt();
}
设定一个阵列,阵列里有a个格子,
然後设定一个整数i,此整数小於a,arr[i]指的是个格子的编号
arr[i] = sc.nextInt()是设定编号i的值
int total = 0;
for(int i : arr)
{
total += i;
}
total /= a;
设定一个整数total,total等於阵列里整数i的总和
然後再把total除以a取得平均值
int sum = 0;
for(int i : arr)
{
if(total - i >= 0)
sum += (total - i);
}
设定一个整数sum,sum等於sum + (total - i),算出需要移动几次。
最後会输出最少需要的移动次数
结果如下:
>>: Day 12 Swift语法-进阶篇(5/5)-Extension
tags: OC 30 day 1. 内存中的五大区域: 栈 储存局部变量。 堆 工程师手动申请的字...
前言 Enum 是 TypeScript 新增的语法,也被称做 列举 或 枚举。 在实务上,我们常用...
实作UIScrollView很常会使用到 实作很常用到: Contentoffset: Conten...
原因: 在Activity中绑定一个ViewModel, Fragments间共用这个ViewMod...
GitHub:https://github.com/dannypc1628/Angular-Tou...