目录
题目
4794. 健身 - AcWing题库https://www.acwing.com/problem/content/4797/
代码
import java.util.Scanner;
public class Main {
public static int N;
public static void main(String[] args){
//获取数据
Scanner input = new Scanner(System.in);
int n = input.nextInt();
N = n;
int[] group = new int[N];
for(int i = 0; i < N; i++){
group[i] = input.nextInt();
}
//累计
int chest = 0;
int biceps = 0;
int back = 0;
for(int i = 0; i < N; i++){
if(i % 3 == 0){
chest += group[i];
}
if(i % 3 == 1){
biceps += group[i];
}
if(i % 3 == 2){
back += group[i];
}
}
//输出
if(chest > biceps && chest > back){
System.out.println("chest");
}
if(biceps > chest && biceps > back){
System.out.println("biceps");
}
if(back > chest && back > biceps){
System.out.println("back");
}
}
}
AC结果
思路:
接收题目输入的数据。然后按照第一组练胸(chest),第二组连二头肌(biceps),第三组练背(back)的顺序记录下每个部位的运动时长。最后,做个判断找出锻炼时间最长的肌肉部位,并输出对应的单词即可。
一、获取数据
public static int N;
......
//获取数据
Scanner input = new Scanner(System.in);
int n = input.nextInt();
N = n;
int[] group = new int[N];
for(int i = 0; i < N; i++){
group[i] = input.nextInt();
}
获取n值,n值表示一共训练了多少组。然后用int类型数组group分别记录下每一组的训练时长。为了方便后续调用方法,在类体中声明整型静态变量N。
二、累计
//累计
int chest = 0;
int biceps = 0;
int back = 0;
for(int i = 0; i < N; i++){
if(i % 3 == 0){
chest += group[i];
}
if(i % 3 == 1){
biceps += group[i];
}
if(i % 3 == 2){
back += group[i];
}
}
chest表示胸部训练的时长,biceps表示二头肌训练的时长,back表示背部训练的时长。通过group下标对3取余的值可以判断,可知group当前下标表示的是哪个部位的训练时长,然后让对应的变量累加。
三、输出
//输出
if(chest > biceps && chest > back){
System.out.println("chest");
}
if(biceps > chest && biceps > back){
System.out.println("biceps");
}
if(back > chest && back > biceps){
System.out.println("back");
}
分别判断一下chest、biceps和back三者哪个值最大,然后输出该值对应的部位的单词即可。