publicclassGongbeishu{ publicstaticvoidmain(String[] args){ long n = new Scanner(System.in).nextLong(); long result = 0; if(n==1) { result = 1; }elseif(n==2) { result = 2; }elseif(n==3) { result = 2 * 3; }elseif(n%2==1) { result = n*(n-1)*(n-2); }elseif(n%2==0) { if(n%3==0) { result = (n-1)*(n-2)*(n-3); }else { result = n*(n-1)*(n-3); } } System.out.println(result); } }
publicclassKhaoshu{ publicstaticvoidmain(String[] args){ Scanner scan = new Scanner(System.in); int k = scan.nextInt();//进制 int l = scan.nextInt();//位数 int [][]dp = newint[101][101];//存放结果 int mod = 1000000007; int i,j,x;//循环的变量 for(i=0;i<k;i++) {//长度为1,数量也为1 dp[1][i] = 1; }
for(i=2;i<=l;i++) {//长度从2开始的 for(j=0;j<k;j++) {//k进制(0~k-1) for(x=0;x<k;x++) {//k进制(0~k-1) if(x!=j-1 && x!=j+1) {//x与j不相邻的情况 dp[i][j] += dp[i-1][x];//固定开头为j,则加上位数-1且开头与j不相邻的情况 dp[i][j] %= mod; } } } } int ans =0; for(i=1;i<k;i++) { ans += dp[l][i];//结果是将所有l位的不同开头加起来 ans %= mod; } System.out.println(ans); } }
for (int i = s.length()-1,j=0; i>=0; i--,j++) { char c = s.charAt(i); if(c=='6')ans[j] = '9'; elseif(c=='9') ans[j]='6'; else ans[j] = c; }
5 希尔排序
希尔排序的变种
填空题tip
将给定的代码复制过来
将___注释,运行
自己写main函数
根据特殊情况验证
6 逆波兰序
没什么说的,,,
7 断号和连号
每行数据长度不等的输入
1 2 3 4 5 6 7 8 9 10
ArrayList<Integer> list = new ArrayList<>(); int N = scan.nextInt(); scan.nextLine();//去掉'\n' for (int i = 0; i < N; i++) { String line = scan.nextLine(); String [] split = line.split(" "); for (int j = 0; j < split.length; j++) { list.add(Integer.parseInt(split[j])); } }
staticvoidcheck(){ int a = 8+arr[0]+arr[1]+arr[2]; int b = 3+arr[2]+arr[4]+arr[7]; int c = 11+arr[3]+arr[6]; int d = 1+arr[1]+arr[4]+arr[8]; int e = arr[5]+arr[6]+arr[7]+arr[8]; int f = 1+arr[0]+arr[3]+arr[5]; if(a == b && b==c&& c==d&&d == e&&e==f) { for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
#change_ld.py import os from pwn import * import argparse
defchange_ld(binary, ld,output): ifnot binary ornot ld ornot output: log.failure("Try 'python change_ld.py -h for more information.'") returnNone binary = ELF(binary) for segment in binary.segments: if segment.header['p_type'] == 'PT_INTERP': size = segment.header['p_memsz'] addr = segment.header['p_paddr'] data = segment.data() if size <= len(ld): log.failure("Failed to change PT_INTERP from {} to {}".format(data, ld)) returnNone binary.write(addr,"/lib64/ld-glibc-{}".format(ld).ljust(size,'\0')) if os.access(output, os.F_OK): os.remove(output) binary.save(output) os.chmod(output, 0b111000000) #rwx------ success("PT_INTERP has changed from {} to {}. Using temp file {}".format(data, ld, output))
parser = argparse.ArgumentParser(description='Force to use assigned new ld.so by changing the binary') parser.add_argument('-b',dest="binary",help='input binary') parser.add_argument('-l',dest="ld",help='ld.so version') parser.add_argument('-o',dest="output",help='outputfile') args = parser.parse_args()
publicclassArray_feature{ publicstaticvoidmain(String[] args){ Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int [] arr = newint[n]; for (int i=0;i<n;i++) { arr[i] = scan.nextInt(); } int min = arr[0]; int max = arr[0]; int sum = 0; for(int i =0;i<n;i++) { if(arr[i]>max) { max = arr[i]; } if(arr[i]<min) { min = arr[i]; } sum+=arr[i]; } System.out.println(max); System.out.println(min); System.out.println(sum); } }
publicclassSpecialHui{ publicstaticvoidmain(String[] args){ int n = new Scanner(System.in).nextInt(); String s=""; for(int a=1;a<10;a++) { for(int b=0;b<10;b++) { for(int c=0;c<10;c++) { if(2*(a+b)+c == n) {//五位 System.out.println(""+a+b+c+b+a); } if(2*(a+b+c) == n) {//六位 s = s+a+b+c+c+b+a+"\n"; } } } } System.out.println(s); } }
十进制转十六进制
使用java内置的api:
String.format("%X", num)
Integer.toHexString(num)【转大写用:toUpperCase()】
注意:X大写则输出的十六进制都是大写,小写则小写
1 2 3 4 5 6 7 8 9 10
package basic_try;
import java.util.Scanner;
publicclassFormSixteen{ publicstaticvoidmain(String[] args){ int num = new Scanner(System.in).nextInt(); System.out.println(String.format("%X", num)); } }
publicclassSort{ publicstaticvoidmain(String[] args){ Scanner scan = new Scanner(System.in); int n = scan.nextInt(); List<Integer> list = new ArrayList<Integer>(); for(int i =0 ;i<n;i++) { list.add(scan.nextInt()); } Collections.sort(list); for(int i =0 ;i<n;i++) { System.out.print(list.get(i)+" "); } } }
publicclassMain{ publicstaticvoidmain(String[] args){ Scanner scan = new Scanner(System.in);//输入类 int [] arr = newint[1000001];//申请大数组 int num = scan.nextInt();//输入 arr[1] = 1;//初始条件 arr[2] = 1; for(int i=3;i<=num;i++) { arr[i] = (arr[i-1] + arr[i-2])%10007;//循环计算每一项 // System.out.print("arr[i]"+arr[i]); } System.out.print(arr[num]);//输出结果 } }
这里数组从1开始是有效的
圆的面积
pi * (r ^ 2)
学习保留位数的输出
使用默认的Math类
保留位数
printf函数
1
System.out.printf("%.7f",result);
PI
1
Math.PI
幂次
1
Math.pow(2, 3);[底数,幂次]
答案:
1 2 3 4 5 6 7 8 9 10
import java.util.Scanner;
publicclasscircle_new_try{ publicstaticvoidmain(String[] args){ Scanner scan = new Scanner(System.in); int r = scan.nextInt(); double result = Math.PI * r * r; System.out.printf("%.7f",result); } }
序列求和
1+2+3+…+n = n * (n-1) /2
学会简化给定的信息
注意数据规模,适当将int用long替代
1 2 3 4 5 6 7 8 9
import java.util.Scanner;
publicclassSeq_second_try{ publicstaticvoidmain(String[] args){ long n = new Scanner(System.in).nextInt();//输入 long result = n * (n+1) / 2;//简化的式子 System.out.print(result);//输出 } }
A+B问题
好像反着了,无所谓了,
很简单,但是之前的输入的进化不能同时用,不然new 两个Scanner对象出来,有点问题
1 2 3 4 5 6 7 8 9 10 11 12
import java.util.Scanner;
publicclassPlus_new_try{ publicstaticvoidmain(String[] args){ Scanner scan = new Scanner(System.in); // int a = new Scanner(System.in).nextInt(); // int b = new Scanner(System.in).nextInt(); int a = scan.nextInt(); int b = scan.nextInt(); System.out.print(a+b); } }