1. J'ai acheté une télévision couleur pour 2856 yuans. Veuillez demander : combien de billets avez-vous payés ?
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. Simulez le processus de tuer des monstres : Le jeu a un total de 20 niveaux, avec deux rôles : héros et monstres. Au premier niveau, l'expérience des monstres est de 20 points, et l'expérience requise pour la mise à niveau est de 1 200. L'expérience du héros est de 0. Chaque fois que le héros tue un monstre, la valeur d'expérience du monstre augmente à chaque niveau, l'expérience requise pour la mise à niveau augmente de 20 % (en ignorant la partie décimale), le l'expérience des monstres augmente de 5 % et l'expérience du héros revient à 0. Veuillez effectuer une mise à niveau au moment où vous atteignez le niveau 20, combien de monstres avez-vous tués au total ?
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. Sujet : Singe mangeant des pêches Problème : Le singe a cueilli quelques pêches le premier jour, en a mangé la moitié immédiatement et n'était pas encore satisfait. Il en a mangé une de plus et les autres l'étaient. je suis parti le lendemain matin. J'ai mangé la moitié de la pêche et j'en ai mangé une de plus. À partir de ce moment-là, chaque matin, je mangeais la moitié et un des restes de la veille. Quand j'ai voulu manger davantage le matin du 10ème jour, j'ai vu qu'il ne restait plus qu'une pêche. Découvrez combien ont été cueillis le premier jour.
Analyse du programme : adopter la méthode de pensée inversée et déduire de l'arrière vers l'avant.
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. Question : Entrez un certain jour d'une certaine année, un certain mois, et déterminez quel jour de l'année est ce jour ?
Analyse du programme : en prenant le 5 mars comme exemple, vous devez additionner les deux premiers mois, puis ajouter 5 jours, qui est le jour de l'année, des circonstances particulières, une année bissextile et le mois d'entrée est plus grand. que Pensez à ajouter un jour supplémentaire à 3 heures.
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. Question : Il existe des nombres 1, 2, 3 et 4. Combien de nombres différents à trois chiffres peuvent être formés sans nombres répétés ? Combien sont-ils ?
Analyse du programme : les nombres qui peuvent être renseignés dans les chiffres des centaines, des dizaines et des unités sont tous 1, 2, 3 et 4. Après avoir composé toutes les permutations, supprimez les permutations qui ne remplissent pas les conditions.
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. Question : Une balle tombe librement d'une hauteur de 100 mètres. Chaque fois qu'elle touche le sol, elle rebondit à la moitié de sa hauteur d'origine. Si elle retombe, découvrez combien. mètres qu'il a parcouru lorsqu'il touche le sol pour la 10ème fois ? A quelle hauteur se situe le 10ème 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. Question : Imprimez tous les « numéros de narcisse ». Le soi-disant « numéro de narcisse » fait référence à un nombre à trois chiffres dont la somme cubique est égale au nombre lui-même. Par exemple : 153 est un « nombre narcisse » car 153=1 au cube + 5 au cube + 3 au cube.
Analyse du programme : utilisez une boucle for pour contrôler 100 à 999 nombres et décomposez chaque nombre en unités, dizaines et centaines.
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. Question : Décomposer un entier positif en facteurs premiers. Par exemple : saisissez 90, imprimez 90=2*3*3*5.
Analyse du programme : Pour décomposer n en facteurs premiers, vous devez d'abord trouver un nombre premier minimum k, puis le compléter selon les étapes suivantes :
(1) Si ce nombre premier est exactement égal à n, alors cela signifie que le processus de décomposition des facteurs premiers est terminé, il suffit de l'imprimer.
(2) Si n>k, mais n est divisible par k, la valeur de k doit être imprimée et le quotient de n divisé par k doit être utilisé comme nouvel entier positif n, et le la première étape est répétée.
(3) Si n n'est pas divisible par k, utilisez k+1 comme valeur de k et répétez la première étape.
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. Question : Utilisez l'imbrication d'opérateurs conditionnels pour répondre à cette question : les étudiants avec des résultats académiques >= 90 points sont représentés par A, les étudiants avec des scores compris entre 60 et 89 sont représentés par B, et 60 Points ci-dessous sont représentés par C.
Analyse du programme : (a>b)?a:b Ceci est un exemple de base d'opérateur conditionnel.
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. Question : Si un nombre est exactement égal à la somme de ses facteurs, le nombre est appelé « nombre parfait ». Par exemple, 6=1+2+3. Programmez pour trouver tous les nombres parfaits inférieurs à 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); } } } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!