1,九进制转换成十进制
做错题了,但是也是简单的签到题,
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner (System.in); int a=2*1+2*9+0+2*9*9*9; System.out.println(a);' } }
2,星期计算
星期天 |
星期一 |
星期二 |
星期三 |
星期四 |
星期五 |
星期六 |
1 |
2 |
3 |
4 |
5 |
6 |
0 |
下行是sum对应的值,所以当sum={2,3,4,5,6,0}时要+6再与7取余,当sum=1时要+6
import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此输入您的代码... int a=20; int b=22; int sum=(int)(Math.pow(a,b)%7); if(sum==1){ System.out.println(sum+6); }else System.out.println((sum+6)%7); scan.close(); } }
3,山
只能暴力解题了,无其他的方法了
利用了StringBuffer和String的转换和int与String之间的转换
<1>int a = 123;
String s = "" + a; //直接拼接 “”
<2>int a =123;
String s = String.valueOf(a); //调用String的valueOf()方法
<3>int a = 123;
String s = Integer.toString(a);//调用整型包装类Integer的toString()方法
字符串转换成int
<1>String ch=”123”;
Int a=Integer.parseint(ch);]
<2>String s = "1234";
int a = Integer.valueOf(s).intValue();
String和StringBuffert之间的转换
<1>StringBuffer s=new StringBuffer(“hello”);
String ch=s.tostring();
package train; import java.util.Scanner; public class mou { static boolean check(int x){ String s=String.valueOf(x); for(int i=0;i<s.length()/2;i++){ if(s.charAt(i)!=s.charAt(s.length()-i-1)) return false; } for(int i=1;i<s.length()/2+1;i++){ if(s.charAt(i)<s.charAt(i-1)) return false; } return true; } public static void main(String [] args){ int ans=0; for(int i=2022;i<=2022222022;i++){ if(check(i))ans++; } System.out.println(ans); } }
4,字符统计
签到题,
package train; import java.util.Scanner; public class test_2 { public static void main(String[] args){ Scanner scan=new Scanner(System.in); String s= scan.nextLine(); int []ch=new int[27]; int max=0; for(int i=0;i<s.length();i++){ ch[(int)s.charAt(i)-65]++; if(ch[(int)s.charAt(i)-65]>max){ max=ch[(int)s.charAt(i)-65]; } } for(int i=0;i<27;i++){ if(ch[i]==max){ System.out.println((char)(i+65)); } } } }
5,最少刷题数
此题有点恶心,起初只以为是签到题,找出中位数然后直接比较大小,然后比中位数小的就可以加到比中位数大即可,到最后全部考虑完毕通过率只有70%,很不能理解,就先这样吧
package train; import java.util.Scanner; import java.util.Arrays; public class test_3 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n; n = scan.nextInt(); int[] a = new int[n]; int[] b = new int[n];//存储要加多少数 int[] c = new int[n];//存储输入的数组 for (int i = 0; i < n; i++) { a[i] = scan.nextInt(); c[i] = a[i]; } Arrays.sort(c); int mid; mid = c[n / 2]; int k=0; for(int i=0;i<n;i++){ if(mid==a[i]) k++; } if (n % 2 == 0&&k==1) { for (int i = 0; i < n; i++) { if (a[i] < mid) System.out.print(mid - a[i]); else System.out.print("0"); System.out.print(" "); } } else { for (int i = 0; i < n; i++) { if (a[i] < mid) System.out.print(mid - a[i] + 1); else System.out.print("0"); System.out.print(" "); } } } }
6,求阶乘
先是find一个x查找因子5就可以,一个阶乘有几个因子5,就会有几个尾数零
然后使用二分查找,因为有一个区间在这个区间里面查找k
package train; import java.util.Scanner; public class test_4 { static long find(long x){ long res=0; while(x!=0){ res=res+x/5; x=x/5; } return res; } static void solve(){ } public static void main(String[] args) { Scanner sc=new Scanner(System.in); long k=sc.nextLong(); long mid=0; long left=1; long right=Long.MAX_VALUE-5; while(left<=right){ mid=(left+right)/2; if(find(mid)>=k)right=mid-1; else left=mid+1; } System.out.println(find(left)==k?left:-1); } }
标签:学习,String,int,System,蓝桥,new,public,Scanner From: https://www.cnblogs.com/dfsdd/p/17052635.html