题目P1909买铅笔
P1909 [NOIP2016 普及组] 买铅笔 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
方法一:
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[]args) {
Scanner cin=new Scanner(System.in);
int n =cin.nextInt();
int a1=cin.nextInt();
int a2=cin.nextInt();
int b1=cin.nextInt();
int b2=cin.nextInt();
int c1=cin.nextInt();
int c2=cin.nextInt();
int arr[]= {(f(a1,a2,n)/a1)*a2,(f(b1,b2,n)/b1)*b2,(f(c1,c2,n)/c1)*c2};
Arrays.sort(arr);
System.out.println(arr[0]);
}
public static int f(int a, int b, int m) {
int k=a;
while(a<m) {
a+=k;
}
return a;
}
}
方法二:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n=cin.nextInt();//需要购买的数量
int [][]a=new int[3][2];//二维数组
//将每种计算的结果存放在数组中,并最后进行比较,输出最小的结果
int []array=new int[3];
for(int i=0;i<3;i++) {//对三种铅笔进行循环
//承接每一行中的两个数组,开始对行循环
a[i][0]=cin.nextInt();
a[i][1]=cin.nextInt();
int f=n/a[i][0];//看需要多少个包装的
if(n%a[i][0]!=0) {//不为0时有剩余应多买一个
f=f+1;
}
//最后的数组为单价乘购买的包装数
array[i]=f*a[i][1];
}
Arrays.sort(array);
System.out.print(array[0]);
}
}
题目P1055ISBN号码
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String []args) {
BufferedReader bin=new BufferedReader(new InputStreamReader(System.in));
try {
int sum=0;
char cc='0';
String isbn_0=bin.readLine();
String isbn=isbn_0.replace("-","");
for(int i=0;i<9;i++) {
int ii=(int)isbn.charAt(i)-48;
sum+=ii*(i+1);
}
sum=sum%11;
if(sum==10)cc='X';
else cc=(char)(sum+48);
if(cc==isbn.charAt(9))
System.out.println("Right");
else {
isbn_0=isbn_0.substring(0,12)+cc;
System.out.println(isbn_0);
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
题目P1424小鱼的航程(改进版)
import java.util.Scanner;
public class Main {
public static void main(String[]args) {
Scanner cin=new Scanner(System.in);
long a=0;
long x=cin.nextLong();
long n=cin.nextLong();
for(int i=0;i<n;i++) {
if(x!=6&&x!=7)
a+=250;
if(x==7)
x=1;
else x++;
}
System.out.println(a);
return;
}
}
题目P1888三角函数
注意题目中要求的约分操作
方法一:
import java.util.*;
public class Main {
public static void main(String[]args) {
Scanner reader=new Scanner(System.in);
int a=reader.nextInt();
int b=reader.nextInt();
int c=reader.nextInt();
int Max=0,Min=0;
if(a>b) {
Max=a;
Min=b;
}else {
Max=b;
Min=a;
}
if(c>Max) {
Max=c;
}
if(c<Min) {
Min=c;
}
for(int i=1;i<=Min;i++) {
if(Max%i==0&&Min%i==0) {
Max=Max/i;
Min=Min/i;
}
}
System.out.print(Min+"/"+Max);
}
}
方法二:
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[]args) {
Scanner cin=new Scanner(System.in);
int max=0,min=0;
int[]a=new int[3];
for(int i=0;i<a.length;i++) {
a[i]=cin.nextInt();
}
Arrays.sort(a);
max=a[2];
min=a[0];
for(int i=1;i<=min;i++) {//进行判断是否有公因数
if(max%i==0&&min%i==0) {
max=max/i;//开始进行约分
min=min/i;
}
}
System.out.println(min+"/"+max);
}
}
题目P5717三角形分类
注意对数据的处理
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int[]arr=new int[3];//输入的三位数字
arr[0]=cin.nextInt();
arr[1]=cin.nextInt();
arr[2]=cin.nextInt();
Arrays.sort(arr);//排序进行长短边的判断
int a=arr[0];
int b=arr[1];
int c=arr[2];
if(a+b<=c) {//无法组成三角形时
System.out.print("Not triangle");
}else {
if(a*a+b*b==c*c) {//相等的情况
System.out.print("Right triangle");
}
if(a*a+b*b>c*c) {//大于长边时
System.out.print("Acute triangle"+"\n");
}
if(a*a+b*b<c*c) {//小于长边时
System.out.print("Obtuse triangle"+"\n");
}
//考虑其中情况重复时
if((a==b&&a!=c)||(a==c&&a!=b)||(b==c&&b!=a)) {
System.out.print("Isosceles triangle"+"\n");
}
if(a==b&&b==c) {
System.out.print("Isosceles triangle"+"\n"+"Equilateral triangle");
}
}
}
}