Grundlegende Programmierfragen (6 ~ 10)

06, finde den größten gemeinsamen Teiler und das kleinste gemeinsame Vielfache

Frage: Geben Sie zwei positive ganze Zahlen m und n ein und finden Sie den größten gemeinsamen Teiler und das kleinste gemeinsame Vielfache.

6.1, Programmanalyse

  • Größter gemeinsamer Teiler Der größte gemeinsame Teiler
    zweier Zahlen ist kleiner als die kleinste Zahl, und das Ergebnis, dass der gemeinsame Teiler den Rest der beiden Zahlen nimmt, ist 0.
  • Das kleinste gemeinsame Vielfache
    1, das kleinste gemeinsame Vielfache ist das Produkt zweier Zahlen geteilt durch den größten gemeinsamen Teiler.
    2. Das kleinste gemeinsame Vielfache ist größer als die größte Zahl und kleiner als das Produkt zweier Zahlen, und der Rest der beiden Zahlen zum kleinsten gemeinsamen Vielfachen ist 0.

6.2, Code-Implementierung

import java.util.Scanner;

public class Test1 {
    
    

	public static void main(String[] args) {
    
    
		Scanner input = new Scanner(System.in);
		System.out.print("请输入两个数m和n:");
		int m = input.nextInt();
		int n = input.nextInt();
//		判断两数的大小
		int min = m > n ? n : m;
		int max = m > n ? m : n;
//		输出最大公约数和最小公倍数
		for (int i=min; i > 0; i--) {
    
    
			if (m % i == 0 && n % i == 0) {
    
    
				System.out.println("最大公约数是:" + i);
				System.out.println("最小公倍数是:"+(n*m)/i);
				break;
			}
		}
	}
}
import java.util.Scanner;

public class Test2 {
    
    

	public static void main(String[] args) {
    
    
		Scanner input = new Scanner(System.in);
		System.out.print("请输入两个数m和n:");
		int m = input.nextInt();
		int n = input.nextInt();
//		判断两数的大小
		int min = m > n ? n : m;
		int max = m > n ? m : n;
//		输出最大公约数
		for (int i=min; i > 0; i--) {
    
    
			if (m % i == 0 && n % i == 0) {
    
    
				System.out.println("最大公约数是:" + i);
				break;
			}
		}
//		输出最小公倍数
		for (int i = max; i <= n * m; i++) {
    
    
			if (i % m == 0 && i % n == 0) {
    
    
				System.out.println("最小公倍数是:" + i);
				break;
			}
		}
	}

}

6.3 、 Wissenschaftsunterricht

Größter gemeinsamer Teiler

Der größte gemeinsame Teiler, auch als größter gemeinsamer Teiler oder größter gemeinsamer Teiler bekannt, bezieht sich auf den größten Teiler, der von zwei oder mehr ganzen Zahlen geteilt wird. a,bDer größte gemeinsame Teiler von wird aufgezeichnet (a,b), ebenso wie a,b,cder größte gemeinsame Teiler von aufgezeichnet wird (a,b,c), und der größte gemeinsame Teiler mehrerer Ganzzahlen hat ebenfalls das gleiche Vorzeichen. Es gibt viele Möglichkeiten, den größten gemeinsamen Teiler zu finden, die gemeinsamen sindPrimfaktor-Zerlegungsmethode, Kurzdivisionsmethode, Wurf- und Turn-Divisionsmethode, Mehrphasensubtraktionsmethode

Detaillierte Adressanalyse: die größte gemeinsame Divisor-Baidu-Enzyklopädie

Kleinstes gemeinsames Vielfaches

Die Vielfachen, die zwei oder mehr ganzen Zahlen gemeinsam sind, werden als ihre gemeinsamen Vielfachen bezeichnet, und das 0kleinste gemeinsame Vielfache, mit der Ausnahme, dass das kleinste gemeinsame Vielfache dieser ganzen Zahlen genannt wird. a,bDas kleinste gemeinsame Vielfache einer ganzen Zahl wird aufgezeichnet [a,b], ebenso wie a,b,cdas kleinste gemeinsame Vielfache aufgezeichnet wird [a,b,c], und das kleinste gemeinsame Vielfache mehrerer Ganzzahlen hat ebenfalls das gleiche Vorzeichen.
Die Lösung istPrimfaktor-Zerlegungsmethode, Formelmethode

Detaillierte Analyseadresse: am wenigsten verbreitete Mehrfach-Baidu-Enzyklopädie

07. Einfache Verarbeitung von Strings

Thema: Geben Sie eine Zeichenzeile ein und zählen Sie die Anzahl der englischen Buchstaben, Leerzeichen, Zahlen und anderen Zeichen.

7.1, Programmanalyse

Realisierungsideen

  1. Definieren Sie ein Array mit einer Länge von 256 (0 ~ 255), um die Anzahl der einzelnen Zeichen zu zählen.
  2. Die Anzahl der Zeichen, die dem Index des Arrays entsprechen.
  3. Drucken Sie die Anzahl der Statistiken aus.

7.2, Code-Implementierung

import java.util.Scanner;

public class Test {
    
    

	public static void main(String[] args) {
    
    
		Scanner input = new Scanner(System.in);
		System.out.print("请输入字符串:");
		String str = input.nextLine();
//		1、定义计数数组
		int[] count = new int[256];
//		2、统计字符个数
		for (int i = 0; i < count.length; i++) {
    
    
			for (int j = 0; j < str.length(); j++) {
    
    
				if (i == str.charAt(j)) {
    
    
					count[i]++;
				}
			}
//		3、打印结果
			if (count[i] > 0) {
    
    
				System.out.print((char) i + "的个数: " + count[i] + "\n");
			}
		}
	}
}

7.3 、 Wissenschaftsunterricht

7.3.1, der Unterschied zwischen next () und nextLine ()

JavaDie ScannerMethoden in der Klasse next()und nextLine()zeichnen Eingabestufe des Eingabezeichens, der Unterschied zwischen:

  • next()Nimmt das Leerzeichen / den TabSchlüssel vor / nach dem Charakter nicht auf, absorbiert nur das Zeichen, beginnt das Zeichen zu absorbieren (bevor und nachdem das Zeichen nicht gezählt wird), bis es auf das Leerzeichen / den TabSchlüssel / die Eingabe trifft , um die Absorption zu stoppen;

  • nextLine()Nehmen Sie das Leerzeichen / den TabSchlüssel vor und nach dem Charakter auf .Enter-TasteFrist.

08 、 s = a + aa + aaa + aaaa + aa… a

Frage: Finden Sie den Wert von s = a + aa + aaa + aaaa + aa ... a, wobei a eine Zahl ist. Beispiel: 2 + 22 + 222 + 2222 + 22222 (zu diesem Zeitpunkt werden 5 Zahlen addiert), und das Hinzufügen mehrerer Zahlen wird über die Tastatur gesteuert.

8.1, Programmanalyse

Diese Frage kann unter zwei Gesichtspunkten betrachtet werden: "Zeichen" und "Zahlen":

  • Behandeln Sie a als Zeichen.
    Realisierungsideen
    1. Bitte geben Sie die wiederholte Zahl ein [1-9]
    2. Geben Sie die Anzahl der wiederholten Ergänzungen ein.
    3. Bestimmen Sie, ob die Zahl qualifiziert ist oder nicht, geben Sie sie erneut ein.
    4. Definieren Sie die Summenvariable
    5 Definition Wiederholen Sie die Anzahl der Zeichenfolgen jedes Mal.
    6. Drucken Sie die Ausgabezeichenfolge aus
  • Behandle a als Zahl.
    Realisierungsideen
    1. Bitte gib die wiederholte Zahl [1-9] ein.
    2. Bitte gib die Anzahl der wiederholten Additionen ein.
    3.22 = 2 10 zur 1. Potenz + 2; 222 = 2 10 zur 2. Potenz + 22 2222 = 2 10 zur 3. Potenz + 222
    Regel: Die aktuelle n-te Ziffer entspricht 2
    10 zur (n-1) Potenz + vorherige Zahl
    4. Definieren Sie die Summenvariable int sum = 0;

8.2, Code-Implementierung

Behandle a als Zeichen

import java.util.Scanner;

public class Test1 {
    
    

	public static void main(String[] args) {
    
    
		Scanner input = new Scanner(System.in);
		int num;
		int n;
		do {
    
    
			//1.请输入重复的数字[1-9]
			System.out.println("请输入重复的数字[1-9]:");
			num = input.nextInt();
			//2.请输入重复相加的个数
			System.out.println("请输入重复相加的个数:");
			n = input.nextInt();
		} while (num < 1 || num > 9);//3.判断数字是否合格,不合格重新输入
		//4.定义求和变量
		int sum = 0;
		//5.定义每次的重复数字串
		String temp = "";
		//6.打印输出的字符串
		String str = "";
		for (int i = 0; i < n; i++) {
    
    
			temp +=""+num; 
			sum += Integer.valueOf(temp);		
			if(i<n-1)
				str+=temp+"+";
			else
				str+=temp;
		}
		System.out.println(sum+"="+str);
	}
}

Behandle a als Zahl

import java.util.Scanner;

public class Test2 {
    
    

	public static void main(String[] args) {
    
    
		Scanner input = new Scanner(System.in);
		int num;
		int count;
		do {
    
    
			//1.请输入重复的数字[1-9]
			System.out.println("请输入重复的数字[1-9]:");
			num = input.nextInt();
			//2.请输入重复相加的个数
			System.out.println("请输入重复相加的个数:");
			count = input.nextInt();
		} while (num < 1 || num > 9);//3.判断数字是否合格,不合格重新输入
		
		//4.定义求和变量
		int sum = 0;
		int temp = num;
		for (int i = 1; i <=count; i++) {
    
    
			if(i<count)
			  System.out.print(temp+"+");
			else
			   System.out.print(temp);
			sum += temp;
			temp = num * (int)Math.pow(10, i)+temp;
		}
		System.out.println("="+sum);
	}
}

09, das Ende der Nummer

Frage: Wenn eine Zahl genau der Summe aller ihrer Faktoren entspricht, wird diese Zahl als "vollständige Zahl" bezeichnet. Zum Beispiel 6 = 1 + 2 + 3. Programmieren Sie, um alle Zahlen innerhalb von 1000 zu finden.

9.1, Programmanalyse

  • Verwirklichen Sie die Idee
    1. Finden Sie alle Faktoren der Zahl num und summieren Sie sie (Summe)
    2. Vergleichen Sie num und Summe

9.2, Code-Implementierung

public class Test {
    
    

	public static void main(String[] args) {
    
    
		int sum;
		for (int i = 1; i <= 1000; i++) {
    
    
			sum = 0;
			for (int j = 1; j < i; j++) {
    
    
				if (i % j == 0) {
    
    
					sum += j;
				}
			}
			if (i == sum) {
    
    
				System.out.println(i);
			}
		}
	}
}

10. Die Höhe des freien Falls

Frage: Ein Ball fällt aus einer Höhe von 100 Metern frei und prallt nach jeder Landung auf die Hälfte seiner ursprünglichen Höhe zurück. Wenn er wieder fällt, wie viele Meter bewegt er sich, wenn er zum zehnten Mal auf den Boden trifft? Wie hoch ist der 10. Rebound?

10.1 Programmanalyse

  • Implementierungsideen
    1. Definieren Sie eine Schleife, die Anzahl der Schleifen ist die Anzahl der Rebounds.
    2. Definieren Sie eine Zwischenvariable, die Höhe jedes Rebounds

10.2 Code-Implementierung

public class Test {
    
    

	public static void main(String[] args) {
    
    
		double height=100;//高度
		double temp = 0;
		double sum = height;//物体落体时经过的路程
		for (int i = 0; i < 10; i++) {
    
    
			sum += temp * 2;
			temp = height / 2.0;
			height = temp;
		}
		System.out.println("第" + 10 + "次落地时,共经过" + sum + "米,第" + 10 + "次反弹" + temp + "米。");
	}
}

Ich denke du magst

Origin blog.csdn.net/Bennettgxd/article/details/113967001
Empfohlen
Rangfolge