Heim  >  Artikel  >  Java  >  Zehn kleine Programmbeispiele für Java-Einsteiger

Zehn kleine Programmbeispiele für Java-Einsteiger

无忌哥哥
无忌哥哥Original
2018-07-23 10:17:3514910Durchsuche

1. Ich habe einen Farbfernseher für 2856 Yuan gekauft. Bitte fragen Sie: Wie viele Banknoten haben Sie bezahlt?

public class Demo01 {

	public static void main(String[] args) {
		int play = 2856;
		System.out.println("100元面值:" + play / 100);
		System.out.println("50元面值:" + play / 10 % 10 / 5);
		System.out.println("20元面值:" + play / 10 % 10 % 5 / 2);
		System.out.println("10元面值:" + play / 10 % 10 % 5 % 2);
		System.out.println("5元面值:" + play % 10 / 5);
		System.out.println("1元面值:" + play % 10 % 5);
	}
}

2. Simulieren Sie den Prozess des Tötens von Monstern: Das Spiel hat insgesamt 20 Level mit zwei Charakteren: Helden und Monster. Im ersten Level betragen die Monster-Erfahrungspunkte 20 Punkte, ein Upgrade ist erforderlich 1200 Erfahrungspunkte und Heldenerfahrungspunkte sind 0. Jedes Mal, wenn der Held ein Monster tötet, erhöht sich der Erfahrungswert des Monsters mit jedem Levelaufstieg; Die Erfahrung des Monsters erhöht sich um 5 % und die Erfahrung des Helden geht auf 0 zurück. Bitte erhöhe sie auf 20. Wie viele Monster hast du insgesamt getötet?

public class Demo02 {
	public static void main(String[] args) {
		int monster = 20;
		int count = 0;
		int exp = 1200;
		for (int d = 2; d <= 20; d++) {
			int hero = 0;
			monster = (int) (monster * 1.05);
			exp = (int) (exp * 1.2);
			while (hero < exp) {
				hero += monster;
				count++;
			}
		}
		System.out.println(count + 1200 / 20);
	}
}

3. Thema: Affe frisst Pfirsiche Problem: Der Affe pflückte am ersten Tag ein paar Pfirsiche und aß sofort die Hälfte davon. Noch nicht zufrieden, aß er noch einen Pfirsich und aß am nächsten Morgen die restlichen Pfirsiche . Ich habe die Hälfte und noch eine 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.

Programmanalyse: Wenden Sie die Methode des umgekehrten Denkens an und schließen Sie von hinten nach vorne.

public class Demo03 {
	public static void main(String[] args) {
        int sum = 1; 
        for(int i = 9;i > 0;i--){ 
            sum = (sum + 1) * 2; 
        } 
        System.out.println("第一天,有桃子"+sum+"颗"); 
    }
}

4. Frage: Geben Sie einen bestimmten Tag eines bestimmten Jahres, einen bestimmten Monat ein und bestimmen Sie, welcher Tag im Jahr dieser Tag ist?

Programmanalyse: Am Beispiel des 5. März sollten Sie die ersten beiden Monate addieren und dann 5 Tage hinzufügen. Dies sind die besonderen Umstände, das Schaltjahr und der Eingabemonat Dann überlegen Sie, einen zusätzlichen Tag um 3 Uhr hinzuzufügen.

public class Demo04 {

	public static void main(String[] args) {
		int sum = 0;
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入几年:");
		int year = sc.nextInt();
		System.out.println("请输入几月:");
		int month = sc.nextInt();
		System.out.println("请输入几号:");
		int day = sc.nextInt();
		GregorianCalendar gre = new GregorianCalendar();
		boolean isLeapYear = gre.isLeapYear(year);

		int ap = isLeapYear ? 29 : 28;
		int days = 0;
		switch (month) {
		case 1:
			days = day;
			break;
		case 2:
			days = 31 + day;
			break;
		case 3:
			days = 31 + ap + day;
			break;
		case 4:
			days = 31 + ap + 31 + day;
			break;
		case 5:
			days = 31 + ap + 31 + 30 + day;
			break;
		case 6:
			days = 31 + ap + 31 + 30 + 31 + day;
			break;
		case 7:
			days = 31 + ap + 31 + 30 + 31 + 30 + day;
			break;
		case 8:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + day;
			break;
		case 9:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + day;
			break;
		case 10:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
			break;
		case 11:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
			break;
		case 12:
			days = 31 + ap + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
			break;

		default:
			System.out.println("月份输入错误");
			break;
		}
		System.out.println("这一天是这一年的第" + days + "天");
	}
}

5. Frage: Es gibt 1, 2, 3 und 4 Zahlen, die ohne wiederholte Zahlen gebildet werden können. Wie viele sind es?

Programmanalyse: Die Zahlen, die in die Hunderter-, Zehner- und Einerstelle eingefügt 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.

public class Demo05 {
	public static void main(String[] args) {
		int count = 0;
		for (int i = 1; i < 5; i++) {
			for (int j = 1; j < 5; j++) {
				for (int k = 1; k < 5; k++) {
					if (i != j && i != k && k != j) {
						count++;
						System.out.println(i * 100 + j * 10 + k);
					}
				}
			}
		}
		System.out.println("能组成" + count + "个互不相同无重复数字的三位数。");
	}
}

6. 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 es zum 10. Mal auf dem Boden aufschlägt? Wie hoch ist die 10. Rallye?

public class Demo06 {
	public static void main(String[] args) {
		double height= 100;
		double sum=100;
		for(int i=0;i<10;i++) {
			height=height/2;
			sum+=height*2;
		}
		System.out.println("第十次反弹高度为:"+height+"米");
		System.out.println("共经过:"+(sum-height*2)+"米");
	}
}

7. Frage: Drucken Sie alle „Narzissenzahlen“ aus. Die sogenannte „Narzissenzahl“ bezieht sich auf eine dreistellige Zahl, deren Kubiksumme der Zahl selbst entspricht. Beispiel: 153 ist eine „Narzissenzahl“, weil 153 = 1 Würfel + 5 Würfel + 3 Würfel.

Programmanalyse: Verwenden Sie eine for-Schleife, um 100-999 Zahlen zu steuern, und zerlegen Sie jede Zahl in Einheiten, Zehner und Hunderter.

public class Demo07 {
	public static void main(String[] args) {
		System.out.println("100-999以内的水仙花数:");
		for(int n=100;n<=999;n++) {
			int a;
			int b;
			int c;
			a=n%10;
			b=((n%100)-a)/10;
			c=(int) Math.floor(n/100);
			if(n==(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3))) {
				System.out.println(n);
			}
		}
	}
}

8. Frage: 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 ist genau gleich n, dann bedeutet dies, dass der Prozess der Zerlegung von Primfaktoren abgeschlossen ist. Drucken Sie ihn 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 n verwendet werden Der erste Schritt wird wiederholt.

(3) Wenn n nicht durch k teilbar ist, verwenden Sie k+1 als Wert von k und wiederholen Sie den ersten Schritt.

public class Demo08 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		System.out.print(n + "=1*");
		for (int k = 2; k <= n / 2; k++) {
			if (n % k == 0) {
				System.out.print(k + "*");
				n = n / k;
				k = 2;
			}
		}
		System.out.println(n);
	}
}

9. Frage: Verwenden Sie die Verschachtelung von Bedingungsoperatoren, um diese Frage zu vervollständigen: Studierende mit akademischen Noten >= 90 Punkten werden durch A dargestellt, Studierende mit Noten zwischen 60 und 89 werden durch B dargestellt und Studierende mit Werte unter 60 werden durch C dargestellt.

Programmanalyse: (a>b)?a:b Dies ist ein einfaches Beispiel für einen bedingten Operator.

public class Demo09 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int n = sc.nextInt();
		long s = 0l;
		for (int i = 1; i <= n; i++) {
			s = s + a;
			a = a * 10 + a;
		}
		System.out.println(s);
	}
}

10. 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.

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

Das obige ist der detaillierte Inhalt vonZehn kleine Programmbeispiele für Java-Einsteiger. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn