循环数问题
import java.util.Scanner;
import java.lang.Math;
public class Main{
public static String compare(double x1,int k1,double x2,int k2){
int n1=0,n2=0;
int x11=(int)x1;
int x22=(int)x2;
while(x11!=0){
n1++;
x11/=10;
}
while(x22!=0){
n2++;
x22/=10;
}
System.out.println(n1);System.out.println(n2);
double s1=(double)x1,s2=(double)x2;
for(int i=1;i<k1;i++){
s1=s1+x1*Math.pow(10,i*n1);
System.out.println(s1);
}
for(int j=1;j<k2;j++){
s2=s2+x2*Math.pow(10,j*n2);
System.out.println(s2);
}
String result="";
double s=s1-s2;
if(s<0)
result="Less";
else if(s==0)
result="Equal";
else result="Greater";
return result;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
double x1=in.nextDouble();
int k1=in.nextInt();
double x2=in.nextDouble();
int k2=in.nextInt();
String result=compare(x1,k1,x2,k2);
System.out.println(result);
}
}
括号匹配问题
package staticConstruct;
import java.util.Scanner;
import java.util.*;
public class TestOrder {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
char[] arr = str.toCharArray();
Stack<Character> stack = new Stack<>();
int cnt = 0, max =0;
for(int i=0;i<arr.length;i++){
if(arr[i] == '('){
stack.push(arr[i]);
}
if(arr[i] == ')' && stack.peek() == '('){
if(stack.size() > max)
max= stack.size();
stack.pop();
}
}
System.out.println(max);
}
}
import java.util.Scanner;
import java.util.*;
public class TestOrder {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
char[] arr = str.toCharArray();
int ans = 0;
int cnt = 0, max =0;
for(int i=0;i<arr.length;i++){
if(arr[i] == '(') {
cnt++;
ans = Math.max(ans, cnt);
}
else if(arr[i] == ')') {
cnt--;
}
}
System.out.println(ans);
}
}