1004.成绩排名
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int N=in.nextInt();
String name[]=new String[N];
String no[]=new String[N];
int grade[]=new int[N];
for(int i=0;i<N;i++) {
name[i]=in.next();
no[i]=in.next();
grade[i]=in.nextInt();
}
int max=0;
int min=0;
for(int i=0;i<N;i++) {
if(grade[max]<grade[i]) {
max=i;
}
if(grade[min]>grade[i]) {
min=i;
}
}
System.out.println(name[max]+" "+no[max]);
System.out.println(name[min]+" "+no[min]);
}
}
1005.继续(3n+1)猜想
题目已知待验证的正整数n(1<n<=100) 因此可以用标记数组的方法。首先定义一个大小为101的数组,标记每个输入的数的值 num[a]=1;a是输入的数字,随后将输入数字进行操作,操作中得到的所有数,都令其num[i]=0;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int num[]=new int[101];
int N=in.nextInt();
int t[]=new int[N];
for(int i=0;i<N;i++) {
int temp=in.nextInt();
t[i]=temp;
num[temp]=1;
}
for(int i=0;i<N;i++) {
int k=t[i];
while(k!=1) {
if(k%2!=0) {
k=(3*k+1)/2;
} else {
k/=2;
}
if(k<101) { //防止数组下标越界
num[k]=0;
}
}
}
int sum=0;
for(int i=100;i>1;i--) {
sum+=num[i];
}
for(int i=100;i>1;i--) {
if(num[i]==1) {
System.out.print(i);
sum--;
if(sum!=0){
System.out.print(" ");
}
}
}
}
}
1006.换个格式输出整数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int bai=n/100;
int shi=n/10%10;
int ge=n%10;
for(int i=0;i<bai;i++) {
System.out.print("B");
}
for(int i=0;i<shi;i++) {
System.out.print("S");
}
for(int i=1;i<=ge;i++) {
System.out.print(i);
}
}
}