問題解決のアイデア:
その逆の順序の計算方法についての継続的なデジタルシンクタンクを書きます
12345
12345 10%= 5 10分の12345 = 1234
1234 10%= 4 1234年から1210年= 123
123 10%= 3 10分の123 = 12
12%10 = 2 12月10日= 1
の1%10 = 1 1月10日= 0
54321正規表現とは逆の順序を表すために
5×4×10000 + 1000年* 100 + 3 * 10 + 1 + 2
(5 + 4×1000×100 + 3 * 10 + 2)×10 + 1
(( 5×100 + 4 * 10 + 3)×10 + 2)×10 + 1
(((5 * 10 + 4)* 10 + 3)×10 + 2)×10 + 1
((((0 * 10 + 5)* 10 + 4)* 3 + 10)×10 + 2)×10 + 1I 0 =
私は10 + 5 * =。5 //
私は* = 10 + 4です。54 //
私は10 + 3 * =。543 //
私は* 10 + 2 =。5432 //
私は* 10 = 1です。// 54321
コードおよび出力:
import java.util.Scanner;
class Demo03_04{
public static void main(String[] args){
//1.输入一个数字
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数字:");
int num=scanner.nextInt();
int temp=num;
//2.拼接出该数字的反序
int sum=0;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
sum=sum*10+num%10;
num/=10;
if(sum==temp){
System.out.println("是回文");
}else{
System.out.println("不是回文");
}
}
}
問題解決のアイデア:
まず、レッツ・リスト、我々はそれらを定義する必要があり、この質問があるクラス:円の円の半径の中心から点の座標
下に記載されている一般的な手順を解きます '
1.提示用户输入点的坐标
2.计算点到圆心之间的距离
3.判断距离和半径之间的关系
距离>半径 点在圆外
距离==半径 点在圆上
距离<半径 点在圆内
代码及输出:
import java.util.Scanner;
class Demo03_08{
public static void main(String[] args){
//1.
Scanner scanner=new Scanner(System.in);
System.out.print("请输入坐标点:");
double x=scanner.nextDouble();
double y=scanner.nextDouble();
//2.
double xo=0;
double yo=0;
double radius=10;
double distance=Math.sqrt(Math.pow(x-xo,2)+Math.pow(y-yo,2));
//3.
if(distance>radius){
System.out.println("点在圆外");
}else if(distance==radius){
System.out.println("点在圆上");
}else{
System.out.println("点在圆内");
}
}
}
解题思路:
以(x1,y1)为原点绘制坐标图,先画出小矩形与大矩形内四角相接的时候
再画出小矩形在大矩形外部的情况
代码及输出:
import java.util.*; class Demo03_10{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); System.out.print("请输入第一个矩形的中心点坐标x,y和长,高:"); double x1 = scanner.nextDouble(); double y1 = scanner.nextDouble(); double w1 = scanner.nextDouble(); double h1 = scanner.nextDouble(); System.out.print("请输入第二个矩形的中心点坐标x,y和长,高:"); double x2 = scanner.nextDouble(); double y2 = scanner.nextDouble(); double w2 = scanner.nextDouble(); double h2 = scanner.nextDouble(); //计算第二个矩形中心点的范围 double inMinX = x1-(w1-w2)/2; double inMaxX = x1+(w1-w2)/2; double inMinY = y1-(h1-h2)/2; double inMaxY = y1+(h1-h2)/2; double outMinX = x1-(w1+w2)/2; double outMaxX = x1+(w1+w2)/2; double outMinY = y1-(h1+h2)/2; double outMaxY = y1+(h1+h2)/2; //判断是否在内或外或嵌套 if(x2>=inMinX&&x2<=inMaxX&&y2>=inMinY&&y2<=inMaxY){ System.out.println("在内"); }else if(x2>=outMaxX||x2<=outMinX||y2>=outMaxY||y2<=outMinY){ System.out.println("在外"); }else{ System.out.println("嵌套"); } } }
代码:
class Demo03_12{
/*
21 42
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16~21
3 7
*/
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//1.输入两个数字
System.out.print("请输入两个数字:");
int n1=scanner.nextInt();
int n2=scanner.nextInt();
int gcd=1;
for(int i=n1<n2?n1:n2;i>=1;i--){
if(n1%i==0&&n2%i==0){
gcd=i;
break;
}
}
System.out.println(gcd);
}
}
思路:
120 2~120 ->2
60 2~60 ->2
30 2~30 ->2
15 2~15 ->3
5 2~5 ->5
代码:
import java.util.Scanner;
class Demo03_13{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数字:");
int num=scanner.nextInt();
while(true){
for(int i=2;i<=num;i++){
if(num%i==0){
System.out.print(i+" ");
num=num/i;
break;
}
}
if(num==1){
break;
}
}
}
}
代码及提示
class Demo03_21{
public static void main(String[] args){
//6 : 1 2 3 4 5 6
//28: 1 2 4 7 14
//n : 1 ~ n/2
int sum=0;
for(int n=2;n<=10000;n++){
for(int i=1;i<=n/2;i++){
if(n%i==0){
sum+=i;
}
}
if(n==sum){
System.out.println("完全数"+n);
}
sum=0;
}
}
}
代码参考:
import java.util.Scanner;
class Demo03_24{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int num=0;
int max=0;
int count=0;
System.out.print("请输入数字:");
while(true){
num=scanner.nextInt();
if(num==0){
break;
}else if(num>max){
max=num;
count=1;
}else if(num==max){
count++;
}
}
System.out.println("max="+max+",count="+count);
}
}