[Verfahren 1] Titel: Klassisches Problem: Es gibt ein Kaninchenpaar. Ab dem dritten Monat nach der Geburt bringt das Kaninchen ein Kaninchenpaar zur Welt Wenn die Kaninchen jeden Monat sterben, selbst wenn sie nicht sterben, wie hoch ist die Gesamtzahl der Kaninchen pro Monat?
1. Programmanalyse: Das Muster von Kaninchen ist die Reihenfolge 1,1,2,3,5,8,13,21 ....
öffentliche Klasse exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++)
System.out.println(f(i));
}public static int f(int x)
{ if(x==1 || x==2) return 1;
Rückkehr f(x-1)+f(x-2);
}
}
oder
öffentliche Klasse exp2{ public static void main(String args[]){ int i=0;
math mymath = new math(); for(i=1;i<=20;i++)
System.out.println(mymath.f(i));
}
}Klasse Mathematik
{ public int f(int x)
{ if(x==1 || x==2) return 1;
Rückkehr f(x-1)+f(x-2);
}
}
[Programm 2] Frage: Bestimmen Sie, wie viele Primzahlen es zwischen 101 und 200 gibt, und geben Sie alle Primzahlen aus.
1. Programmanalyse: So bestimmen Sie Primzahlen: Verwenden Sie eine Zahl, um 2 durch sqrt (diese Zahl) zu dividieren.
Dies bedeutet, dass diese Zahl keine Primzahl ist, andernfalls handelt es sich um eine Primzahl.
öffentliche Klasse exp2{ public static void main(String args[]){ int i=0;
math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true)
System.out.println(i);
}
}Klasse Mathematik
{ public int f(int x)
{ if(x==1 || x==2) return 1;
Rückkehr f(x-1)+f(x-2);
}public boolean iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false;
}
}
[Verfahren 3] Titel: Drucken Sie alle „Narzissenzahlen“ aus. Die sogenannte „Narzissenzahl“ bezieht sich auf eine dreistellige Zahl, deren Kubiksumme gleich der Zahl selbst ist. Beispiel: 153 ist eine „Narzissenzahl“, weil 153 = 1 Würfel + 5 Würfel + 3 Würfel.
1. Programmanalyse: Verwenden Sie eine for-Schleife, um 100-999 Zahlen zu steuern und jede Zahl in Einheiten, Zehner und Hunderter zu zerlegen.
öffentliche Klasse exp2{
public static void main(String args[]){ int i=0;
math mymath = new math(); for(i=100;i<=999;i++) if(mymath.shuixianhua(i)==true)
System.out.println(i);
}
}Klasse Mathematik
{ public int f(int x)
{ if(x==1 || x==2) return 1;
Rückkehr f(x-1)+f(x-2);
}public boolean iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false;
}public boolean shuixianhua(int x)
{ int i=0,j=0,k=0;
i=x/100;
j=(x % 100) /10;
ik=fx % 10; (x==i*i*i+j*j*j+k*k*k) return true else;
return false;
}
}
【Prozedur 4】Titel: Zerlegen Sie eine positive ganze Zahl in Primfaktoren. Zum Beispiel: 90 eingeben, 90=2*3*3*5 ausdrucken.
Programmanalyse: Um n in Primfaktoren zu zerlegen, sollten Sie zunächst eine minimale Primzahl k finden und diese dann gemäß den folgenden Schritten vervollständigen:
(1) Wenn diese Primzahl genau gleich n ist, bedeutet dies, dass der Prozess der Zerlegung der Primfaktoren beendet ist. Drucken Sie sie einfach aus.
(2) Wenn n <> k, aber n durch k teilbar ist, sollte der Wert von k ausgedruckt werden und der Quotient von n dividiert durch k als neue positive ganze Zahl verwendet werden, und der erste Schritt sollte wiederholt werden.
(3) Wenn n nicht durch k teilbar ist, verwenden Sie k+1 als Wert von k und wiederholen Sie den ersten Schritt.
öffentliche Klasse exp2{ public exp2(){} public void fengjie(int n){ for(int i=2;i<=n/2;i++){ if(n%i==0){
System.out.print(i+"*");
fengjie(n/i);
}
}
System.out.print(n);
System.exit(0);///Dieser Satz darf nicht weggelassen werden, sonst ist das Ergebnis falsch
}public static void main(String[] args){
String str="";
exp2 c=new exp2();
str=javax.swing.JOptionPane.showInputDialog("Bitte geben Sie den Wert von N ein (Enter Exit to Exit):");
int N;
Nt=r0y;{
N=Integer.parseInt(str);
}catch(NumberFormatException e){
e.printStackTrace();
}
System.out.print(N+"Zerlegung von Primfaktoren:"+N+"=");
c.fengjie(N);
}
}
[Programm 5] Frage: Verwenden Sie die Verschachtelung von Bedingungsoperatoren, um diese Frage zu vervollständigen: Schüler mit akademischen Noten >=90 Punkten werden durch A dargestellt, Schüler mit Noten zwischen 60 und 89 werden durch B dargestellt und Schüler mit Noten unter 60 werden dargestellt von C.
1. Programmanalyse: (a> b)?a:b Dies ist ein grundlegendes Beispiel für einen bedingten Operator.
import javax.swing.*; public class ex5 { public static void main(String[] args){
String str="";
str=JOptionPane.showInputDialog("Bitte geben Sie den Wert von N ein (Enter Exit to Exit):");
int N;
Nt=r0y;{
N=Integer.parseInt(str);
ca}tch(NumberFormatException e){
e.printStackTrace();
}
str=(N>90?"A":(N>60?"B":"C"));
System.out.println(str);
}
}
[Programm 6] Frage: Geben Sie zwei positive ganze Zahlen m und n ein und ermitteln Sie deren größten gemeinsamen Teiler und kleinstes gemeinsames Vielfaches.
1. Programmanalyse: Verwenden Sie die Verdunstungsmethode.
Größter gemeinsamer Teiler:
öffentliche Klasse CommonDivisor{ public static void main(String args[])
{ commonDivisor(24,32);
}static int commonDivisor(int M, int N)
{ if(N<0||M<0)
{
Sryesttuermn.out.println("ERROR!" -1;
}if(N==0)
{
rSeytsutrenm.out.println("der größte gemeinsame Teiler ist:"+M);
}return commonDivisor(N,M%N);
}
}
Kleinstes gemeinsames Vielfaches und größter gemeinsamer Teiler:
importiere java.util.Scanner; öffentliche Klasse CandC
{
//Die folgende Methode besteht darin, den größten gemeinsamen Teiler zu finden
public static int gcd(int m, int n)
{while (wahr)
{if ((m = m % n) == 0) return n; if ((n = n % m) == 0) return m;
}}
public static void main(String args[]) löst eine Ausnahme aus
{
//Eingabewert abrufen
//Scanner chin = new Scanner(System.in);
/i/ntint a = chin.nextInt(), b = chin.nextInt(); a=23;
System.out.println("Kleinstes gemeinsames Vielfaches: " + a * b / c + "/n Größter gemeinsamer Teiler: " + c);
}}
[Programm 7] Frage: Geben Sie eine Zeichenzeile ein und zählen Sie die Anzahl der darin enthaltenen englischen Buchstaben, Leerzeichen, Zahlen und anderen Zeichen.
1. Programmanalyse: Bei Verwendung der while-Anweisung ist die Bedingung, dass das Eingabezeichen nicht „/n“ ist.
import java.util.Scanner; public class ex7 { public static void main(String args[])
{
System.out.println("Bitte geben Sie eine Zeichenfolge ein:");
Scanner scan=new Scanner(System.in);
String str=scan.next();
String E1="[/u4e00-/u9fa5]";
Sintrting E2="[a-zA-Z]"; countH=0; int countE=0;
String[] arrStr=new String[arrChar.length]; for (int i=0;i<arrChar.length;i++)
{
arrStr[i]=String.valueOf(arrChar[i]);
}for (String i: arrStr )
{if (i.matches(E1))
{
countH++;
}if (i.matches(E2))
{
countE++;
}
}
System.out.println("Anzahl chinesischer Zeichen"+countH);
System.out.println("Anzahl der Buchstaben"+countE);
}
}
[Prozedur 8] Frage: Finden Sie den Wert von s=a+aa+aaa+aaaa+aa...a, wobei a eine Zahl ist. Zum Beispiel 2+22+222+2222+22222 (zu diesem Zeitpunkt werden insgesamt 5 Zahlen hinzugefügt). Die Addition mehrerer Zahlen wird über die Tastatur gesteuert.
1. Programmanalyse: Der Schlüssel besteht darin, den Wert jedes Artikels zu berechnen.
import java.io.*; public class Sumloop { public static void main(String[] args) löst eine IOException aus
{int s=0;
String-Ausgabe="";
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Bitte geben Sie den Wert von a ein");
Sfotrring input =stadin.readLine(); (int i =1;i<=Integer.parseInt(input);i++)
{
ionuttput+=input; a=Integer.parseInt(output);
s+=a;
}
System.out.println(s);
}
}
Noch eine Erklärung:
import java.io.*; public class Sumloop { public static void main(String[] args) löst eine IOException aus
{ int s=0; int t=0;
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
String-Eingabe = stadin.readLine();
fno=rInteger.parseInt(input); (int i=1;i<=n;i++){
t=t*10+n;
s=s+t;
System.out.println(t);
}
System.out.println(s);
}
}
[Programm 9] Frage: Wenn eine Zahl genau gleich der Summe ihrer Faktoren ist, wird die Zahl eine „perfekte Zahl“ genannt. Zum Beispiel 6=1+2+3. Programm zum Finden aller perfekten Zahlen innerhalb von 1000.
öffentliche Klasse Wanshu { public static void main(String[] args)
{ int s; for(int i=1;i<=1000;i++)
{
fs=o0r;(int j=1;j<i;j++) if(i % j==0)
wenn s=s+j; (s==i)
System.out.print(i+" ");
}
System.out.println();
}
}
[Prozedur 10] Frage: Ein Ball fällt aus einer Höhe von 100 Metern frei und springt jedes Mal auf die Hälfte seiner ursprünglichen Höhe zurück. Wie viele Meter passiert er insgesamt, wenn er auftrifft zum 10. Mal auf dem Boden? Wie hoch ist die 10. Rallye?
öffentliche Klasse Ex10 { public static void main(String[] args)
{ double s=0; double t=100; for(int i=1;i<=10;i++)
{
s+=t;
t=t/2;
}
System.out.println(s);
System.out.println(t);
}
}
[Prozedur 11] Frage: Es gibt 1, 2, 3 und 4 Zahlen. Wie viele verschiedene dreistellige Zahlen können ohne wiederholte Zahlen gebildet werden? Wie viele sind es?
1. Programmanalyse: Die Zahlen, die in die Hunderter-, Zehner- und Einerstelle eingetragen werden können, sind alle 1, 2, 3 und 4. Nachdem Sie alle Permutationen zusammengestellt haben, entfernen Sie die Permutationen, die die Bedingungen nicht erfüllen.
öffentliche Klasse Wanshu { public static void main(String[] args)
{ int i=0; int j=0; int t=0; for(i=1;i<=4;i++) for(k =1;k<=4;k++) if(i!=j && j!=k && i!=k)
{t+=1;
System.out.println(i*100+j*10+k);
}
System.out.println (t);
}
}
[Verfahren 12] Frage: Die vom Unternehmen gewährten Boni basieren auf Gewinnprovisionen. Wenn der Gewinn (I) weniger als oder gleich 100.000 Yuan beträgt, kann der Bonus um 10 % erhöht werden; wenn der Gewinn mehr als 100.000 Yuan und weniger als 200.000 Yuan beträgt, unterliegt der Anteil von weniger als 100.000 Yuan einer 10 %igen Erhöhung. Provision, und wenn der Gewinn größer als 100.000 Yuan ist, beträgt der Bonus 10 % für den Anteil zwischen RMB 200.000 und RMB 400.000, die Provision beträgt 5 % für den Anteil über RMB 200.000 und RMB 600.000. Die Provision beträgt 3 % für den Teil über 400.000 Yuan, der Teil über 600.000 Yuan kann mit 1,5 % berechnet werden, der Teil über 1 Million Yuan Geben Sie den Gewinn des aktuellen Monats über die Tastatur ein. Geben Sie die Gesamtzahl der ausgeschütteten Boni ein.
1. Programmanalyse: Bitte verwenden Sie zum Teilen und Lokalisieren die Zahlenachse. Beachten Sie, dass der Bonus bei der Definition als Ganzzahl definiert werden muss.
import java .util.*; public class test { public static void main (String[]args){
double sum;//Deklarieren Sie den auszugebenden Bonus in der zu speichernden Variablen
Scanner-Eingabe =neuer Scanner (System.in);//Scanner importieren
System.out.print („Geben Sie den Gewinn für den aktuellen Monat ein“);
double lirun=input .nextDouble();//Geben Sie den Gewinn über die Konsole ein
if(lirun<=100000){
sum=lirun*0.1;
}else if (lirun<=200000){
sum=10000+lirun*0.075;
}else if (lirun<=400000){
sum=17500+lirun*0.05;
}else if (lirun<=600000){
sum=lirun*0.03;
}else if (lirun<=1000000){
sum=lirun*0.015;
} anders{
sum=lirun*0.01;
}
System.out.println("Der Bonus, der ausgezahlt werden soll, ist "+sum);
}
}
Der Code für andere Situationen unten kann vom Leser verbessert werden.
【Verfahren 13】
Frage: Eine ganze Zahl wird nach der Addition von 100 zu einer perfekten Quadratzahl, und wenn 168 hinzugefügt wird, wird sie zu einer perfekten Quadratzahl. Was ist diese Zahl?
1. Programmanalyse: Um innerhalb von 100.000 zu urteilen, addieren Sie vor der Verschreibung zunächst 100 zur Zahl, dann 268 zur Zahl und verschreiben Sie dann. Wenn das Ergebnis nach der Verschreibung die folgenden Bedingungen erfüllt, ist es das Ergebnis. Bitte beachten Sie die spezifische Analyse:
öffentlicher Klassentest { public static void main (String[]args){
long k=0; for(k=1;k<=100000l;k++) if(Math.floor(Math.sqrt(k+100))==Math.sqrt(k+100) &&
Math.floor(Math.sqrt(k+168))==Math.sqrt(k+168))
System.out.println(k);
}
}
[Programm 14] Frage: Geben Sie ein bestimmtes Jahr, einen bestimmten Monat und einen bestimmten Tag ein und bestimmen Sie, welcher Tag im Jahr dieser Tag ist?
1. Programmanalyse: Am Beispiel des 5. März sollten Sie zunächst die beiden vorherigen Monate addieren und dann 5 Tage hinzufügen. Dies ist der Tag des Jahres. Besondere Umstände wie Schaltjahre und Eingabemonate größer als 3. Es muss ein zusätzlicher Tag in Betracht gezogen werden.
import java.util.*; public class test { public static void main (String[]args){ int day=0;
System.out.print("Bitte geben Sie Jahr, Monat, Tag/n ein");
Scanner-Eingabe = neuer Scanner(System.in);
Jahr=input.nextInt();
Monat=input.nextInt();
day=input.nextInt();
switch(month) /*Berechnen Sie zunächst die Gesamtzahl der Tage im Vormonat*/
{Fall 1:
sum=0;break; Fall 2:
sum=31;break; Fall 3:
sum=59;break; Fall 4:
sum=90;break; Fall 5:
sum=120;break; Fall 6:
sum=151;break; Fall 7:
sum=181;break; Fall 8:
sum=212;break; Fall 9:
sum=243;break; Fall 10:
sum=273;break; Fall 11:
sum=304;break; Fall 12:
sum=334;break; Standard:
System.out.println("Datenfehler");break;
}
sum=sum+day; /*Anzahl der Tage an einem bestimmten Tag hinzufügen*/
if(year%400==0||(year%4==0&&year%100!=0))/*Beurteilen Sie, ob es ein Schaltjahr ist*/
elseleap=1;
Sprung=0;
if(leap==1 && monatlich>2)/*Wenn es ein Schaltjahr ist und der Monat größer als 2 ist, sollte ein Tag zur Gesamtzahl der Tage hinzugefügt werden*/
sum++;
System.out.println("Es ist der Tag:"+sum);
}
}
[Programm 15] Frage: Geben Sie drei ganze Zahlen x, y, z ein. Bitte geben Sie diese drei Zahlen von klein nach groß aus.
1. Programmanalyse: Wir finden einen Weg, die kleinste Zahl auf x zu setzen, vergleichen zuerst x mit y, wenn x > y, tauschen dann die Werte von x und y aus und vergleichen dann x mit z, wenn x > z vertauscht die Werte von x und z, sodass x minimiert werden kann.
import java.util.*; public class test { public static void main (String[]args){ int j=0;
System.out.print("Bitte geben Sie drei Zahlen/n ein");
Scanner-Eingabe = neuer Scanner(System.in);
i=input.nextInt();
j=input.nextInt();
k=iifnput.nextInt(); (i>j)
{
x=i;
i=j;
j=x;
}if(i>k)
{
x=i;
i=k;
k=x;
}if(j>k)
{
x=j;
j=k;
k=x;
}
System.out.println(i+", "+j+", "+k);
}
}
[Programm 16] Frage: 9*9-Formel ausgeben.
1. Programmanalyse: Betrachten Sie Zeilen und Spalten, es gibt insgesamt 9 Zeilen und 9 Spalten, i steuert die Zeilen und j steuert die Spalten.
öffentliche Klasse jiujiu { public static void main(String[] args)
{ int i=0; int j=0; for(i=1;i<=9;i++)
{ for(j=1;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
Keine wiederholten Produkte (unteres Dreieck)
öffentliche Klasse jiujiu { public static void main(String[] args)
{ int i=0; int j=0; for(i=1;i<=9;i++)
{ for(j=1;j<=i;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
oberes Dreieck
öffentliche Klasse jiujiu { public static void main(String[] args)
{ int i=0; int j=0; for(i=1;i<=9;i++)
{ for(j=i;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
[Prozedur 17] Titel: Affe isst Pfirsiche Problem: Der Affe pflückte am ersten Tag ein paar Pfirsiche, aß sofort die Hälfte davon und war noch nicht zufrieden. Er aß noch einen und aß am nächsten Morgen die Hälfte der restlichen Pfirsiche.
Habe noch eins gegessen. Von da an aß ich jeden Morgen die Hälfte und eins der Reste vom Vortag. Als ich am Morgen des 10. Tages noch mehr essen wollte, sah ich, dass nur noch ein Pfirsich übrig war. Finden Sie heraus, wie viele am ersten Tag gepflückt wurden.
1. Programmanalyse: Übernehmen Sie die Methode des umgekehrten Denkens und schließen Sie von hinten nach vorne.
Öffentlicher Klassenaffe isst Pfirsich{
static int total(int day){ if(day == 10){ return 1;
}else{ return (total(day+1)+1)*2;
}
public s}tatic void main(String[] args)
{
System.out.println(total(1));
}}
[Ablauf 18] Thema: Es treten zwei Tischtennismannschaften mit jeweils drei Spielern an. Team A besteht aus den drei Personen a, b und c, und Team B besteht aus den drei Personen x, y und z. Zur Ermittlung der Spielliste wurde das Los ausgelost. Jemand fragte die Spieler nach dem Kader für das Spiel. a sagte, dass er nicht mit x konkurriert, und c sagte, dass er nicht mit x und z konkurrierte. Bitte programmieren Sie ein Programm, um die Liste der Spieler der drei Teams zu finden.
1. Programmanalyse: So beurteilen Sie Primzahlen: Verwenden Sie eine Zahl, um 2 durch sqrt (diese Zahl) zu dividieren. Wenn sie geteilt werden kann, bedeutet dies, dass die Zahl keine Primzahl ist, andernfalls ist sie eine Primzahl.
import java.util.ArrayList; öffentliche Klasse pingpang {
pSutbrliincg sat,abt,icc; void main(String[] args) {
String[] op = { "x", "y", "z" };
ArrayList<pingpang> arrayList=new ArrayList<pingpang>(); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) for (int k = 0; k < 3 ; k++) {
pingpang a=new pingpang(op[i],op[j],op[k]); if(!aaequals(ab)&&!abequals(ac)&&!aaequals("x")
&&!acequals("x")&&!acequals("z")){
arrayList.add(a);
}
for}(Object a:arrayList){
System.out.println(a);
}
}public pingpang(String a, String b, String c) { super(); this.a = a;
}
@pOubvelircride String toString() {
// TODO Automatisch generierter Methoden-Stub
return „Der Gegner von a ist „+a+“, der Gegner von „+“b ist „+b+“, der Gegner von „+“c ist „+c+“/n“;
}
}
【Programm 19】Titel: Drucken Sie das folgende Muster aus (Raute)
*
***
****
**********
****
***
*
1. Programmanalyse: Teilen Sie zunächst das Diagramm in zwei Teile. Die ersten vier Zeilen haben eine Regel und die letzten drei Zeilen haben eine Regel. Verwenden Sie doppelte for-Schleifen. Die erste Ebene steuert die Zeilen und die zweite Ebene steuert die Spalten .
Dreieck:
öffentliche Klasse StartG { public static void main(String [] args)
{ int i=0; int j=0; for(i=1;i<=4;i++)
{ for(j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}for(i=4;i>=1;i--)
{ for(j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
}
}
}
Diamant:
öffentliche Klasse StartG { public static void main(String [] args)
{ int i=0; int j=0;
for(i=1;i<=4;i++)
{ for(int k=1; k<=4-i;k++)
System.out für .print(" "); (j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}for(i=4;i>=1;i--)
{ for(int k=1; k<=5-i;k++)
für System.out.print(" "); (j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
}
}
}
[Prozedur 20] Frage: Es gibt eine Folge von Brüchen: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13 ... Finden Sie die Summe der ersten 20 Elemente dieser Folge .
1. Programmanalyse: Bitte verstehen Sie die sich ändernden Regeln von Zähler und Nenner.
öffentliche Klasse test20 { public static void main(String[] args) { float fm = 1f; float sum = 0f;
temp = fm;
fm = fz;
fz = fz + temp;
Summe += fz/fm;
//System.out.println(sum);
}
System.out.println(sum);
}
}
[Programm 21] Frage: Ermitteln Sie die Summe von 1+2!+3!+...+20!
1. Programmanalyse: Dieses Programm wandelt lediglich die Akkumulation in eine kumulative Multiplikation um.
public class Ex21 { static long sum = 0; static long fac = 0; public static void main(String[] args) { long sum = 0; i<=10; i++ ) {
fac = fac * i;
sum += fac;
}
System.out.println(sum);
}}
[Programm 22] Titel: Verwenden Sie die rekursive Methode, um 5! zu finden.
1. Programmanalyse: Rekursive Formel: fn=fn_1*4!
import java.util.Scanner; public class Ex22 { public static void main(String[] args) {
Scanner s = new Scanner(System.in); int n = s.nextInt();
Ex22 tfr = new Ex22();
System.out.println(tfr.recursion(n));
}
public long recursion(int n) { long value = 0; if(n ==1 || n == 0) {
Wert = 1;
} sonst if(n > 1) {
Wert = n * Rekursion(n-1);
}Rückgabewert;
}}
[Prozedur 23] Frage: Es sitzen 5 Personen zusammen. Wie alt ist die fünfte Person? Er sagte, er sei 2 Jahre älter als die vierte Person. Als ich die 4. Person fragte, wie alt sie sei, sagte er, er sei 2 Jahre älter als die 3. Person. Ich fragte die dritte Person und sie sagte, er sei zwei Jahre älter als die zweite Person. Fragte die zweite Person und sagte, er sei zwei Jahre älter als die erste Person. Schließlich fragte ich die erste Person und er sagte, er sei 10 Jahre alt. Wie alt ist die fünfte Person?
1. Programmanalyse: Bei der rekursiven Methode wird die Rekursion in zwei Phasen unterteilt: Backtracking und Rekursion. Wenn Sie das Alter der fünften Person wissen möchten, müssen Sie das Alter der vierten Person usw. wissen, bis zur ersten Person (10 Jahre alt).
Wieder zurückschieben.
öffentliche Klasse Ex23 { static int getAge(int n){ if (n==1){ return 10;
}return 2 + getAge(n-1);
}public static void main(String[] args) {
System.out.println("Das fünfte Alter ist:"+getAge(5));
}
}
[Programm 24] Frage: Bei einer positiven Ganzzahl mit nicht mehr als 5 Ziffern gelten folgende Anforderungen: 1. Finden Sie heraus, wie viele Ziffern sie hat, und 2. Geben Sie die Ziffern in umgekehrter Reihenfolge aus.
import java.util.Scanner; public class Ex24 { public static void main(String[] args) {
Ex24 tn = new Ex24();
Scanner s = new Scanner(System.in); long a = s.nextLong(); if(a < 0 || a > 100000) {
System.out.println("Fehler bei der Eingabe, bitte führen Sie dieses Programm erneut aus");
System.exit(0);
}if(a >=0 && a <=9) {
System.out.println( a + „ist eine einzelne Ziffer“);
System.out.println("Die Ausgabe in umgekehrter Reihenfolge ist " + '/n' + a);
} else if(a >= 10 && a <= 99) {
System.out.println(a + „ist eine zweistellige Zahl“);
System.out.println("Ausgabe in umgekehrter Reihenfolge ist");
tn.converse(a);
} else if(a >= 100 && a <= 999) {
System.out.println(a + „ist eine dreistellige Zahl“);
System.out.println("Ausgabe in umgekehrter Reihenfolge ist");
tn.converse(a);
} else if(a >= 1000 && a <= 9999) {
System.out.println(a + „ist eine vierstellige Zahl“);
System.out.println("Ausgabe in umgekehrter Reihenfolge ist");
tn.converse(a);
} else if(a >= 10000 && a <= 99999) {
System.out.println(a + „ist eine fünfstellige Zahl“);
System.out.println("Ausgabe in umgekehrter Reihenfolge ist");
tn.converse(a);
}
}public void converse(long l) {
String s = Long.toString char (l); [] ch = s.toCharArray(); for(int i=ch.length-1; i>=0; i--) {
System.out.print(ch[i]);
}
}}
[Programm 25] Frage: Eine 5-stellige Zahl. Bestimmen Sie, ob es sich um eine Palindromzahl handelt. Das heißt, 12321 ist eine Palindromzahl, die Einerstelle ist die gleiche wie die Tausenderstelle und die Zehnerstelle ist die gleiche wie die Tausenderstelle.
import java.util.Scanner; public class Ex25 { static int[] a = new int[5]; b = new int[5]; { boolean is =false ;
Scanner s = new Scanner(System.in); long l = s.nextLong(); if (l > 99999 || l < 10000) {
System.out.println("Eingabefehler, bitte erneut eingeben!");
l = s.nextLong();
}for (int i = 4; i >= 0; i--) { a[i] = (int) (l / (long) Math.pow(10, i));
l =(l % (long) Math.pow(10, i));
}
Sfyosrtem.out.println(); (int i=0,j=0; i<5; i++, j++) {
b[j] = a[i];
}for(int i=0,j=4; i<5; i++, j--) { if(a[i] != b[j]) {
is = false;
} anders {
ist = wahr;
}
}if(is == false) {
System.out.println("ist kein Palindrom!");
} else if(is == true) {
System.out.println("ist ein Palindrom!");
}
}}
[Programm 26] Frage: Bitte geben Sie den ersten Buchstaben des Wochentags ein, um den Wochentag zu bestimmen. Wenn die ersten Buchstaben gleich sind, fahren Sie mit der Bestimmung des zweiten Buchstabens fort.
1. Programmanalyse: Es ist besser, eine Situationsanweisung zu verwenden. Wenn die ersten Buchstaben gleich sind, verwenden Sie eine Situationsanweisung oder eine if-Anweisung, um den zweiten Buchstaben zu beurteilen.
import java.util.Scanner; public class Ex26 { public static void main(String[] args){
//Speichern Sie den zweiten vom Benutzer eingegebenen Buchstaben
char WeekSecond;
//Instanziieren Sie die Scanner-Klasse als Eingabeobjekt zum Empfangen von Benutzereingaben
Scanner-Eingabe = neuer Scanner(System.in);
// Eingabeaufforderung starten und Benutzerkonsoleneingaben empfangen
System.out.print("Bitte geben Sie den ersten Buchstaben des Wochentags auf Englisch ein und ich helfe Ihnen bei der Bestimmung des Wochentags:");
String-Buchstabe = input.next();
//Bestimmen Sie, ob die Länge der Eingabezeichenfolge der Benutzerkonsole einen Buchstaben beträgt
if (letter.length() == 1){
//Verwenden Sie das Zeichen, das das erste Indexbit annimmt, damit der Scanner Eingaben vom Typ char empfangen kann
char WeekFirst = letter.charAt(0); switch (weekFirst){ case 'm':
//Wenn Kleinbuchstaben eingegeben werden, verwenden Sie die Switch-Strukturfunktion, um den nächsten Fallzweig mit einer Break-Anweisung auszuführen, um die Funktion zum Ignorieren der Groß-/Kleinschreibung bei Benutzerkonsoleneingaben zu implementieren
Fall 'M':
System.out.println("Montag");
break; case 't':
//Wenn Kleinbuchstaben eingegeben werden, verwenden Sie die Switch-Strukturfunktion, um den nächsten Fallzweig mit einer Break-Anweisung auszuführen, um die Funktion zum Ignorieren der Groß-/Kleinschreibung bei Benutzerkonsoleneingaben zu implementieren
Fall 'T':
System.out.print("Da Dienstag (Dienstag) und Donnerstag (Donnerstag) beide mit dem Buchstaben T beginnen, müssen Sie den zweiten Buchstaben eingeben, um richtig beurteilen zu können: ");
Buchstabe = input.next();
//Bestimmen Sie, ob die Länge der Eingabezeichenfolge der Benutzerkonsole einen Buchstaben beträgt
if (letter.length() == 1){
//Verwenden Sie das Zeichen, das das erste Indexbit annimmt, damit der Scanner Eingaben vom Typ char empfangen kann
WeekSecond = Letter.charAt(0);
//Verwenden Sie den ODER-Operator (||), um die Funktion zum Ignorieren der Groß-/Kleinschreibung bei Benutzerkonsoleneingaben zu implementieren
if (weekSecond == 'U' || WeekSecond == 'u'){
System.out.println("Tuesday");
brechen;
//Verwenden Sie den ODER-Operator (||), um die Funktion zum Ignorieren der Groß-/Kleinschreibung bei Benutzerkonsoleneingaben zu implementieren
} else if (weekSecond == 'H' || WeekSecond == 'h'){
System.out.println("Donnerstag");
brechen;
//Konsolenfehlermeldung
} anders{
System.out.println("Eingabefehler, der zweite Buchstabe des Wochenwertes kann nicht erkannt werden, das Programm endet!");
brechen;
}
} anders {
//Konsolenfehlermeldung
System.out.println("Eingabefehler, es kann nur ein Buchstabe eingegeben werden, das Programm endet!");
brechen;
ca}se 'w':
//Wenn Kleinbuchstaben eingegeben werden, verwenden Sie die Switch-Strukturfunktion, um den nächsten Fallzweig mit einer Break-Anweisung auszuführen, um die Funktion zum Ignorieren der Groß-/Kleinschreibung bei Benutzerkonsoleneingaben zu implementieren
Fall 'W':
System.out.println("Mittwoch");
Pause; Fall 'f':
//Wenn Kleinbuchstaben eingegeben werden, verwenden Sie die Switch-Strukturfunktion, um den nächsten Fallzweig mit einer Break-Anweisung auszuführen, um die Funktion zum Ignorieren der Groß-/Kleinschreibung bei Benutzerkonsoleneingaben zu implementieren
Fall 'F':
System.out.println("Freitag");
break; case 's':
//Wenn Kleinbuchstaben eingegeben werden, verwenden Sie die Switch-Strukturfunktion, um den nächsten Fallzweig mit einer Break-Anweisung auszuführen, um die Funktion zum Ignorieren der Groß-/Kleinschreibung bei Benutzerkonsoleneingaben zu implementieren
Fall 'S':
System.out.print("Da sowohl Samstag (Samstag) als auch Sonntag (Sonntag) mit dem Buchstaben S beginnen, müssen Sie den zweiten Buchstaben eingeben, um richtig beurteilen zu können: ");
Buchstabe = input.next();
//Bestimmen Sie, ob die Länge der Eingabezeichenfolge der Benutzerkonsole einen Buchstaben beträgt
if (letter.length() == 1){
//Verwenden Sie das Zeichen, das das erste Indexbit annimmt, damit der Scanner Eingaben vom Typ char empfangen kann
WeekSecond = Letter.charAt(0);
//Verwenden Sie den ODER-Operator (||), um die Funktion zum Ignorieren der Groß-/Kleinschreibung bei Benutzerkonsoleneingaben zu implementieren
if (weekSecond == 'A' || WeekSecond == 'a'){
System.out.println("Saturday");
brechen;
//Verwenden Sie den ODER-Operator (||), um die Funktion zum Ignorieren der Groß-/Kleinschreibung bei Benutzerkonsoleneingaben zu implementieren
} else if (weekSecond == 'U' || WeekSecond == 'u'){
System.out.println("Sonntag");
brechen;
//Konsolenfehlermeldung
} anders{
System.out.println("Eingabefehler, der zweite Buchstabe des Wochenwertes kann nicht erkannt werden, das Programm endet!");
brechen;
}
} anders{
//Konsolenfehlermeldung
System.out.println("Eingabefehler, es kann nur ein Buchstabe eingegeben werden, das Programm endet!");
brechen;
Standard:
//Konsolenfehlermeldung
System.out.println("Eingabefehler, der erste Buchstabe des Wochenwertes kann nicht erkannt werden, das Programm endet!");
brechen;
}
} anders{
//Konsolenfehlermeldung
System.out.println("Eingabefehler, es kann nur ein Buchstabe eingegeben werden, das Programm endet!");
}
}
}
[Programm 27] Titel: Finden Sie Primzahlen innerhalb von 100
öffentliche Klasse Ex27 { public static void main(String args[])
{int sum,i; for(sum=2;sum<=100;sum++)
{for(i=2;i<=sum/2;i++)
{if(sum%i==0) break;
}if(i>sum/2)
System.out.println(sum+"ist eine Primzahl");
}
}
}
[Programm 28] Thema: 10 Zahlen sortieren
1. Programmanalyse: Sie können die Auswahlmethode verwenden, dh aus den letzten 9 Vergleichsprozessen das kleinste auswählen, um es mit dem ersten Element auszutauschen. Verwenden Sie beim nächsten Mal analog das zweite Element, um es mit den letzten 8 Elementen zu vergleichen tauschen Sie sie aus.
import java.util.Arrays; import java.util.Random; import java.util.Scanner { public static void main(String[] args) { int arr[] = new int[11];
Random r=new Random(); for(int i=0;i<10;i++){
arr[i]=r.nextInt(100)+1;//Erhalte 10 ganze Zahlen innerhalb von 100
}
Arrays.sort for (arr); (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
}
System.out.print("/nBitte geben Sie eine int-Zahl ein: ");
Scanner sc=new Scanner(System.in);
arr[10]=sc.nextInt();//Geben Sie einen int-Wert ein
Aflorrays.sort(arr); (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
}
}
}
[Programm 29] Frage: Ermitteln Sie die Summe der Diagonalelemente einer 3*3-Matrix
1. Programmanalyse: Verwenden Sie doppelte for-Schleifen, um die Eingabe eines zweidimensionalen Arrays zu steuern, und akkumulieren Sie dann a[i][i] und geben Sie es aus.
öffentliche Klasse Ex29 { public static void main(String[] args){ double sum=0;{1,2,3},{4,5, 6},{7,7,8 }}; for(int i=0;i<3;i++) for(int j=0;j<3;j++){ if(i==j)
sum=sum + array[i][j];
}
System.out.println(sum);
}
}
[Programm 30] Frage: Es gibt ein Array, das sortiert wurde. Geben Sie nun eine Zahl ein und fügen Sie diese gemäß den ursprünglichen Regeln in das Array ein.
1. Programmanalyse: Stellen Sie zunächst fest, ob diese Zahl größer als die letzte Zahl ist, und erwägen Sie dann das Einfügen der mittleren Zahl. Nach dem Einfügen werden die Zahlen nach diesem Element der Reihe nach um eine Position nach hinten verschoben.
import java.util.Random; public class ArraySort { public static void main(String[] args)
{ int temp=0; int myarr[] = new int[12];
Random r=new Random(); for(int i=1;i<=10;i++)
fomryarr[i]=r.nextInt(1000); (int k=1;k<=10;k++)
fSoyrstem.out.print(myarr[k]+","); (int i=1;i<=9;i++) for(int k=i+1;k<=10;k++) if(myarr[i ]>myarr[k])
{
temp=myarr[i];
myarr[i]=myarr[k];
myarr[k]=temp;
}
fSoyrstem.out.println(""); (int k=1;k<=10;k++)
System.out.print(myarr[k]+",");
fmoyarrr[11]=r.nextInt(1000); (int k=1;k<=10;k++) if(myarr[k]>myarr[11])
{
fteomrp=myarr[11]; (int j=11;j>=k+1;j--)
myarr[j]=myarr[j-1];
myarr[k]=temp;
}
forSystem.out.println(""); (int k=1;k<=11;k++)
System.out.print(myarr[k]+",");
}
}
[Programm 31] Titel: Ein Array in umgekehrter Reihenfolge ausgeben.
Programmanalyse: Erstes und Letztes vertauschen.
Tatsächlich ist es einfacher, Variablen mit einer Schleife zu steuern:
for(int k=11;k>=1;k--)
System.out.print(myarr[k]+",");
[Programm 32] Titel: Nehmen Sie die 4 bis 7 Ziffern einer ganzen Zahl a, beginnend am rechten Ende.
Programmanalyse: So kann man es sich vorstellen:
(1) Verschiebe a zunächst um 4 Bit nach rechts.
(2) Legen Sie eine Zahl fest, bei der die unteren 4 Bits alle 1 und der Rest alle 0 sind. Verfügbar~(~0 < <4)
(3) Führen Sie die beiden oben genannten Schritte durch.
öffentliche Klasse Ex32 { public static void main(String[] args)
{ int a=0; long b=18745678;
a=(int) Math.floor(b % Math.pow(10,7)/Math.pow(10, 3));
System.out.println(a);
}}
【Programm 33】
Frage: Drucken Sie das Dreieck von Yang Hui aus (erforderlich, um 10 Zeilen wie unten gezeigt auszudrucken)
1. Programmanalyse:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
öffentliche Klasse Ex33 { public static void main(String args[]){ int i,j int a[][];
a=new int[8][8]; for(i=0;i<8;i++){
a[i][i]=1;
a[i][0]=1;
for}(i=2;i<8;i++){ for(j=1;j<=i-1;j++){
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}for(i=0;i<8;i++){ for(j=0;j<i;j++){
System.out.printf(" "+a[i][j]);
}
System.out.println();
}
}
}
[Programm 34] Frage: Geben Sie 3 Zahlen a, b, c ein und geben Sie sie in der Reihenfolge ihrer Größe aus.
1. Programmanalyse: Verwendung von Zeigermethoden.
öffentliche Klasse Ex34 { public static void main(String[] args)
{int []arrays = {800,56,500}; for(int i=arrays.length;--i>=0;)
{for(int j=0;j<i;j++)
{if(arrays[j]>arrays[j+1])
{int temp=arrays[j];
Arrays[j]=Arrays[j+1];
arrays[j+1]=temp;
}}} for(int n=0;n<arrays.length;n++)
System.out.println(arrays[n]);
}
}
[Programm 35] Titel: Geben Sie ein Array ein, tauschen Sie das größte Element mit dem ersten Element aus, tauschen Sie das kleinste Element mit dem letzten Element aus und geben Sie das Array aus.
import java.util.*; public class Ex35 { public static void main(String[] args) { int i, min, max, n, temp1, temp2;
System.out.println("Geben Sie die Länge des Arrays ein:");
Scannertastatur = neuer Scanner(System.in);
n = keyboard.nextInt();
a = new int[n]; for (i = 0; i < n; i++) {
System.out.print("Geben Sie „th“ + (i + 1) + „data“ ein);
a[i] = keyboard.nextInt();
}
//Das Obige ist die Eingabe des gesamten Arrays
max = 0;
min = 0;
//Setze zwei Flags, beginnend damit, dass beide auf die erste Zahl zeigen
for (i = 1; i < n; i++) { if (a[i] > a[max])
max = i; // Durchlaufen Sie das Array. Wenn es größer als a [max] ist, weisen Sie seinen Array-Index max zu
if (a[i] < a[min])
min = i; // Wie oben, wenn es kleiner als a[min] ist, weisen Sie seinen Array-Index min zu
}
// Die obige for-Schleife findet die Maximal- und Minimalwerte, max ist der Index des Maximalwerts, min ist der Index des Minimalwerts
temp1 = a[0];
temp2 = a[min]; //Diese beiden Temps sind nur für den Austausch gedacht
a[0] = a[max];
a[max] = temp1; //Erster Austausch von a[0] und dem Maximalwert a[max]
if (min != 0) { //Wenn der Mindestwert nicht a[0] ist, führen Sie Folgendes aus
a[min] = a[n - 1];
a[n - 1] = temp2; //Tausch a[min] und a[n-1]
} else { //Wenn der Mindestwert a[0] ist, führen Sie Folgendes aus
a[max] = a[n - 1];
a[n - 1] = temp1;
}
for (i = 0; i < n; i++) { //Ausgabearray
System.out.print(a[i] + " ");
}}}
[Programm 36] Frage: Es gibt n ganze Zahlen, sodass die vorherigen Zahlen um m Positionen nach hinten verschoben werden und die letzten m Zahlen zu den ersten m Zahlen werden [Programm 37]
Frage: Da sitzen n Personen im Kreis und nummerieren sie der Reihe nach. Zählen Sie von der ersten Person (zählen Sie von 1 bis 3).
Import Java.util.Scanner;
Scanner S = neuer Scanner (System.in);
arr [i] = true; // Wenn das Index wahr ist, bedeutet es, dass es sich noch im Kreis befindet
} int linksCount = n;
if (arr [index] == true) {// wenn im Kreis
Countnum ++; // Zählen Sie Inkrement
if (countnum == 3) {// Beim Melden von 3
Countnum = 0; // Zähle weiter von Null
arr [index] = false; // Diese Person verlässt den Kreis
linke Count -; // Die verbleibende Anzahl von Menschen wird um eins reduziert
}
}
Index ++; // Jedes Mal, wenn eine Zahl gemeldet wird
if (index == n) {// Es handelt sich um eine zirkuläre Anzahl.
Index = 0; // Setzen Sie den Index auf Null und starten Sie erneut.
}
} für (int i = 0; i <n; i ++) {if (arr [i] == true) {
System.out.println(i);
}
}
}
}
【Programm 38】
Frage: Schreiben Sie eine Funktion, um die Länge einer Zeichenfolge zu finden.
Import Java.util.Scanner;
{
Scanner S = neuer Scanner (System.in);
System.out.println("Bitte geben Sie eine Zeichenfolge ein");
String mys = s.Next ();
System.out.println (str_len (mys));
} public static int str_len (String x)
{return X.length ();
}
}
Frage: Schreiben Sie eine Funktion. 1+1/3+...+1/n
【Programm 39】
Thema: Stringsortierung.
Java.util.*;
{
ArrayList <string> list = new ArrayList <string> ();
list.add ("010101");
list.add ("010003");
list.add ("010201");
Sammelns.sort für (list);
System.out.println (list.get (i));
}}}
【Programm 40】
Thema: Es gibt ein paar Pfirsiche am Strand, und fünf Affen müssen sie teilen. Der erste Affe teilte den Pfirsichstapel in fünf Teile auf. Der zweite Affen teilte den verbleibenden Pfirsich in fünf gleiche Teile, und es gab auch einen. da am Strand?
öffentliche Klasse DG {
statische int ts = 0; // Gesamtzahl der Pfirsiche
int fs = 1; // zeichnen Sie die Anzahl der Punkte auf
statische int hs = 5; // Anzahl der Affen ...
int tsscope = 5000;
public int ft (int t) {if (t == tsScope) {
// Die Rekursion abbrechen, wenn die Anzahl der Pfirsiche den Maximalwertbereich erreicht
System.out.println ("Ende");
0 zurückgeben;
} else {if ((t-1)%hs == 0 && fs <= hs) {if (fs == hs)
{
System.out.println ("Der Zustand der Pfirsichunterteilung wird erfüllt, wenn die Anzahl der Pfirsiche =" +ts +"" ");
}
fs+= 1;
Return ft ((t-1)/5*4); // REGET den Gesamtbetrag zurück, nachdem der Affe ein Stück genommen hat
}anders
{
// Die Bedingungen werden nicht erfüllt
fs = 1; // Die Anzahl der Minuten wird auf 1 zurückgesetzt
Rückgabe ft (ts += 1); // Fügen Sie der Anzahl der Pfirsiche +1 hinzu
}}}
public static void main (String [] args) {new dg (). ft (0);
}
}