本文共 8265 字,大约阅读时间需要 27 分钟。
题目链接:
代码如下:import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] a=new int[3]; for (int i=0;i<3;i++) { a[i]=sc.nextInt(); } Arrays.sort(a); for(int i=0;i<3;i++) { System.out.print(a[i]); if(i<2) System.out.print("->"); } System.out.println(); }}
题目链接:
代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); System.out.println("2^"+n+" = "+(1<
题目链接:
代码如下:
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int ans=0; int x=1; for (int i=1;i<=n;i++) { x*=i; ans+=x; } System.out.println(ans); }}
题目链接:
代码如下:public class Main { public static void main(String[] args) { System.out.println("This is a simple problem."); }}
题目链接:
代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n =sc.nextInt(); String s = sc.next(); long lie = Math.round(n/2.0); for (long i=0;i
题目链接:
代码如下:import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); int[] num =new int[10]; for (int i=0;i0) System.out.println(i+":"+num[i]); } }}
题目链接:
代码如下:import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n =sc.nextInt(); int [] quan={ 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; String map = "10X98765432"; Listlist = new ArrayList<>(); for (int i=0;i '9') { flag=1; break; } int x = s.charAt(j)-'0'; sum=(sum+x*quan[j])%11; } if(flag==1) { list.add(s); continue; } if(s.charAt(s.length()-1)==map.charAt(sum)) continue; list.add(s); } if(list.size()==0) System.out.println("All passed"); else { for(int i=0;i
题目链接:
代码如下:public class Main { public static void main(String[] args) { System.out.println("fahr = "+100+", celsius = "+5*(100-32)/9); }}
题目链接:
代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String s = sc.next(); int x=0; while(2*x*x-1<=n) x++; x--; for (int i=x;i>0;i--) { for (int j=0;j
题目链接:
代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long n =sc.nextLong(); long tn=n; int num=0; long ans=0; for (long i=2;i*i<=n;i++) { //if(tn num) { num=tnum; ans=tans; } } if(num==0) { num=1; ans=n; } System.out.println(num); for (int i=0;i
题目链接:
分析: 建两个头指针分别表示没有重复元素的链表和重复元素的链表 代码如下:#includeusing namespace std;const int maxn=1e6+5;struct node{ int next; int addr; int val;};int vis[100000+5];struct node a[maxn];int st,n;int rst=-1,rtnod=rst;int lst=-1,ltnod=lst;int main(){ memset(vis,0,sizeof(vis)); scanf("%d%d",&st,&n); for (int i=0;i
题目链接:
代码如下:#include#include #include #include #include #include using namespace std;const int maxn=1e3+5;int n;int a[maxn];vector v1,v2,v3,V2,V3;struct node{ struct node* left,*right; int data;};node* Create (node *root,int data){ if(root==NULL) { node* t=(node*)malloc(sizeof(node)); t->data=data; t->left=t->right=NULL; root=t; } else { if(root->data>data) { root->left=Create(root->left,data); } else { root->right=Create(root->right,data); } } return root;}void Traverse1(node* root){ if(root) { v2.push_back(root->data); Traverse1(root->left); Traverse1(root->right); }}void Traverse2(node* root){ if(root) { v3.push_back(root->data); Traverse2(root->right); Traverse2(root->left); }}void Traverse3(node* root){ if(root) { Traverse3(root->left); Traverse3(root->right); V2.push_back(root->data); }}void Traverse4(node* root){ if(root) { Traverse4(root->right); Traverse4(root->left); V3.push_back(root->data); }}int main(){ scanf("%d",&n); node * root=NULL; for (int i=0;i
题目链接:
分析: 找出正序字符串和倒序字符串的最长公共子串,然后用字符串长度减去最长公共子串的长度就是答案。 代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { final int maxn=1005; Scanner sc = new Scanner(System.in); String s = sc.next(); String rs =""; for (int i=s.length()-1;i>=0;i--) rs+=s.charAt(i); int[][]dp = new int[maxn][maxn]; for (int i=1;i<=s.length();i++) { for (int j=1;j<=rs.length();j++) { if(s.charAt(i-1)==rs.charAt(j-1)) { dp[i][j]=Math.max(dp[i][j],dp[i-1][j-1]+1); } else { dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]); } } } System.out.println(s.length()-dp[s.length()][s.length()]); }}
题目链接:
分析: 并查集,通过各自的爱好进行并查集unit操作,最后通过find统计个数。 代码如下:import java.util.*;public class Main { public static int find(int a,int[] pre) { if(a==pre[a]) return a; return pre[a]=find(pre[a],pre); } public static void unit(int a,int b,int[] pre) { int fa=find(a,pre); int fb=find(b,pre); if(fa!=fb) pre[fa]=fb; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); final int maxn=1005; int[][] hob = new int[maxn][maxn]; int[] pre = new int[maxn]; int[] kind = new int [maxn]; for (int i=0;i> list = new ArrayList<>(); for (int i=0;i temp = new ArrayList<>(); for (int j=0;j temp=list.get(i); for (int j=i+1;j
题目链接:
分析: 树状数组+二分查找 这个题用java写会超时。 代码如下:#includeusing namespace std;const int maxn=1e5+5;int t[maxn];int Max=-1;int lowbit(int x){ return x&(-x);}void add(int loc,int data){ for (int i=loc;i =1;i-=lowbit(i)) ans+=t[i]; return ans;}int binary (int target){ int ans=-1; int left=1,right=Max; while(left<=right) { int mid=(left+right)/2; if(sum(mid)
转载地址:http://vcaen.baihongyu.com/