[Procédure 1] Titre : Problème classique : Il y a un couple de lapins. Ils donnent naissance à un couple de lapins chaque mois à partir du troisième mois après la naissance. Une fois que le lapin a grandi jusqu'au quatrième mois, il donne naissance à un couple de lapins. chaque mois. Si les lapins Même s’ils ne meurent pas, quel est le nombre total de lapins chaque mois ?
1. Analyse du programme : Le motif des lapins est la séquence 1,1,2,3,5,8,13,21....
public class exp2{ public static void main(String args[]){ int i=0 for(i=1;i<=20;i++)
System.out.println(f(i));
}public statique int f(int x)
{ if(x==1 || x==2) renvoie 1 sinon;
retourner f(x-1)+f(x-2);
}
}
ou
public class exp2{ public static void main(String args[]){ int i=0;
math mymath = new math(); pour(i=1;i<=20;i++)
System.out.println(mymath.f(i));
}
}cours de mathématiques
{ public int f(int x)
{ if(x==1 || x==2) renvoie 1 sinon;
retourner f(x-1)+f(x-2);
}
}
[Programme 2] Question : Déterminez combien de nombres premiers il y a entre 101 et 200 et affichez tous les nombres premiers.
1. Analyse du programme : Comment déterminer les nombres premiers : utilisez un nombre pour diviser 2 en sqrt (ce nombre) respectivement s'il peut être divisé,
Cela signifie que ce nombre n’est pas un nombre premier, sinon c’est un nombre premier.
public class 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);
}
}cours de mathématiques
{ public int f(int x)
{ if(x==1 || x==2) renvoie 1 sinon;
retourner f(x-1)+f(x-2);
}public booléen iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false ;
}
}
[Procédure 3] Titre : 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.
1. Analyse du programme : utilisez une boucle for pour contrôler 100 à 999 nombres et décomposez chaque nombre en unités, dizaines et centaines.
classe publique 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);
}
}cours de mathématiques
{ public int f(int x)
{ if(x==1 || x==2) renvoie 1 sinon;
retourner f(x-1)+f(x-2);
}public booléen iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false ;
}public booléen shuixianhua(int x)
{int je=0,j=0,k=0;
je = x/100 ;
j=(x % 100) /10 ;
ik=fx % 10; (x==i*i*i+j*j*j+k*k*k) renvoie vrai sinon ;
renvoie faux ;
}
}
【Procédure 4】Titre : 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, 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 un nouvel entier positif, et la première étape doit être 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 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);///Cette phrase ne peut pas être omise, sinon le résultat sera faux
}public static void main(String[] args){
Chaîne str="";
exp2 c=nouveau exp2();
str=javax.swing.JOptionPane.showInputDialog("Veuillez entrer la valeur de N (entrez exit pour quitter) :");
entier N ;
Nt=r0y;{
N=Integer.parseInt(str);
}catch(NumberFormatException e){
e.printStackTrace();
}
System.out.print(N+"Décomposition de facteurs premiers :"+N+"=");
c.fengjie(N);
}
}
[Programme 5] Question : Utilisez l'imbrication d'opérateurs conditionnels pour répondre à cette question : les étudiants avec des scores 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 les étudiants avec des scores inférieurs à 60 sont représentés. par C.
1. Analyse du programme : (a> b)?a:b Ceci est un exemple de base d'opérateur conditionnel.
importer javax.swing.* ; public class ex5 { public static void main(String[] args){
Chaîne str="";
str=JOptionPane.showInputDialog("Veuillez entrer la valeur de N (entrez exit pour quitter) :");
entier 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);
}
}
[Programme 6] Question : Saisissez deux entiers positifs m et n et trouvez leur plus grand diviseur commun et leur plus petit commun multiple.
1. Analyse du programme : utilisez la méthode d’évaporation.
Plus grand diviseur commun :
classe publique CommonDivisor{ public static void main (String args[])
{ diviseur commun (24,32);
}static int commonDivisor (int M, int N)
{ si(N<0||M<0)
{
Sryesttuermn.out.println("ERREUR!"); -1;
}si(N==0)
{
rSeytsutrenm.out.println("le plus grand diviseur commun est :"+M);
}retourne commonDivisor(N,M%N);
}
}
Plus petit commun multiple et plus grand commun diviseur :
importer java.util.Scanner ; classe publique CandC
{
//La méthode suivante consiste à trouver le plus grand diviseur commun
public statique int pgcd (int m, int n)
{pendant que (vrai)
{if ((m = m % n) == 0) renvoie n ; if ((n = n % m) == 0) renvoie m ;
}}
public static void main (String args []) lève une exception
{
//Obtenir la valeur d'entrée
//Scanner menton = new Scanner(System.in);
/i/ntint a = chin.nextInt(), b = chin.nextInt();
System.out.println("Plus petit commun multiple : " + a * b / c + "/n Plus grand diviseur commun : " + c);
}}
[Programme 7] Question : Entrez une ligne de caractères et comptez le nombre de lettres anglaises, d'espaces, de chiffres et d'autres caractères qu'elle contient.
1. Analyse du programme : en utilisant l'instruction while, la condition est que le caractère saisi ne soit pas « /n ».
importer java.util.Scanner ; classe publique ex7 { public static void main (String args[])
{
System.out.println("Veuillez entrer une chaîne :");
Scanner scan = nouveau scanner (System.in);
String str=scan.next();
Chaîne E1="[/u4e00-/u9fa5]";
Sintrting E2="[a-zA-Z]"; countH=0; int countE=0;
String[] arrStr=new String[arrChar.length]; pour (int i=0;i<arrChar.length;i++)
{
arrStr[i]=String.valueOf(arrChar[i]);
}pour (Chaîne i : arrStr )
{si (i.matches(E1))
{
compteH++;
}if (i.matches(E2))
{
compteE++;
}
}
System.out.println("Nombre de caractères chinois"+countH);
System.out.println("Nombre de lettres"+countE);
}
}
[Procédure 8] Question : Trouvez la valeur de s=a+aa+aaa+aaaa+aa...a, où a est un nombre. Par exemple, 2+22+222+2222+22222 (un total de 5 nombres sont ajoutés à ce moment). L'ajout de plusieurs nombres est contrôlé par le clavier.
1. Analyse du programme : La clé est de calculer la valeur de chaque élément.
importer java.io.* ; public class Sumloop { public static void main(String[] args) lance IOException
{int s=0 ;
Sortie de chaîne="" ;
BufferedReader stade = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Veuillez entrer la valeur de a");
Sfotrring input =stadin.readLine(); (int i =1;i<=Integer.parseInt(input);i++)
{
ionuttput+=entrée; a=Integer.parseInt(sortie);
s+=a;
}
System.out.println(s);
}
}
Autre explication :
importer java.io.* ; public class Sumloop { public static void main(String[] args) lance IOException
{int s=0; int n;
BufferedReader stade = new BufferedReader(new InputStreamReader(System.in));
Entrée de chaîne = stadin.readLine();
fno=rInteger.parseInt(entrée); (int i=1;i<=n;i++){
t=t*10+n;
s=s+t;
System.out.println(t);
}
System.out.println(s);
}
}
[Programme 9] Question : Si un nombre est exactement égal à la somme de ses facteurs, ce nombre est appelé « nombre parfait ». Par exemple, 6=1+2+3. Programmez pour trouver tous les nombres parfaits inférieurs à 1000.
classe publique Wanshu { public static void main (String[] args)
{int s; pour(int i=1;i<=1000;i++)
{
fs=o0r;(int j=1;j<i;j++) si(i % j==0)
si s=s+j; (s==i)
System.out.print(i+" ");
}
System.out.println();
}
}
[Procédure 10] 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. Lorsqu'elle retombe, combien de mètres au total parcourt-elle lorsqu'elle frappe. le sol pour la 10ème fois ? A quelle hauteur se situe le 10e rallye ?
classe publique Ex10 { public static void main (String[] args)
{ double s=0; double t=100; pour(int je=1;i<=10;i++)
{
s+=t;
t = t/2 ;
}
System.out.println(s);
System.out.println(t);
}
}
[Procédure 11] 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 ?
1. Analyse du programme : les nombres qui peuvent être renseignés dans les centaines, les dizaines et les 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.
classe publique Wanshu { public static void main (String[] args)
{ int je=0; int j=0; int k=0; pour(i=1;i<=4;i++) pour(j=1;j<=4;j++) pour(k =1;k<=4;k++) si(i!=j && j!=k && i!=k)
{t+=1;
System.out.println(i*100+j*10+k);
}
System.out.println (t);
}
}
[Procédure 12] Question : Les bonus émis par l'entreprise sont basés sur des commissions sur les bénéfices. Lorsque le bénéfice (I) est inférieur ou égal à 100 000 yuans, le bonus peut être augmenté de 10 % ; lorsque le bénéfice est supérieur à 100 000 yuans et inférieur à 200 000 yuans, la part inférieure à 100 000 yuans est soumise à une majoration de 10 %. commission, et si le bénéfice est supérieur à 100 000 yuans, le bonus est de 10 %. Pour la partie comprise entre 200 000 et 400 000, la commission peut être de 7,5 % ; pour la partie supérieure à 200 000 yuans, la commission peut être de 5 % ; ; Lorsque le montant est compris entre 400 000 et 600 000, la partie supérieure à 400 000 yuans peut être commissionnée à 3 % ; , la commission peut être de 1,5% , la partie dépassant 1 million de yuans est soumise à une commission de 1%. Saisissez le bénéfice I du mois à partir du clavier. Comment le nombre total de bonus doit-il être distribué ?
1. Analyse du programme : veuillez utiliser l’axe des nombres pour diviser et localiser. Notez que le bonus doit être défini comme un entier lors de la définition.
importer java .util.* ; test de classe publique { public static void main (String[]args){
double somme;//Déclarer le bonus à émettre dans la variable à stocker
Entrée du scanner = nouveau scanner (System.in); // Importer le scanner
System.out.print ("Entrez le bénéfice du mois en cours");
double lirun=input .nextDouble();//Entrez les bénéfices depuis la console
si(lirun<=100000){
somme=lirun*0.1 ;
}sinon si (lirun<=200000){
somme = 10 000 + lirun * 0,075 ;
}sinon si (lirun<=400000){
somme=17 500+lirun*0,05 ;
}sinon si (lirun<=600000){
somme=lirun*0,03 ;
}sinon si (lirun<=1000000){
somme=lirun*0,015 ;
} autre{
somme=lirun*0,01 ;
}
System.out.println("Le bonus à payer est "+sum);
}
}
Le code pour d'autres situations ci-dessous peut être amélioré par le lecteur.
【Procédure 13】
Question : Un entier, après avoir ajouté 100, il devient un nombre carré parfait, et en ajoutant 168, il devient un nombre carré parfait. Quel est ce nombre ?
1. Analyse du programme : Pour juger dans une fourchette de 100 000, ajoutez d'abord 100 au nombre avant de prescrire, puis ajoutez 268 au nombre puis prescrivez Si le résultat après prescription remplit les conditions suivantes, c'est le résultat. Veuillez consulter l'analyse spécifique :
test de classe publique { public static void main (String[]args){
long k=0; pour(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);
}
}
[Programme 14] Question : Entrez une certaine année, un certain mois et un certain jour, et déterminez quel jour de l'année est ce jour ?
1. Analyse du programme : en prenant le 5 mars comme exemple, vous devez d'abord additionner les deux mois précédents, puis ajouter 5 jours, qui sont le jour de l'année, comme les années bissextiles et les mois saisis supérieurs à 3. Il faut envisager d'ajouter une journée supplémentaire.
importer java.util.*; test de classe publique { public static void main (String[]args){ int day=0;
System.out.print("Veuillez saisir l'année, le mois, le jour/n");
Entrée du scanner = nouveau scanner (System.in);
année=input.nextInt();
mois=input.nextInt();
jour=input.nextInt();
switch(month) /*Calculez d’abord le nombre total de jours du mois précédent*/
{cas 1 :
somme = 0 ; cas de rupture 2 :
somme = 31 ; cas de rupture 3 :
somme = 59 ; cas de rupture 4 :
somme = 90 ; cas de rupture 5 :
somme = 120 ; cas de rupture 6 :
somme = 151 ; cas de rupture 7 :
somme = 181 ; cas de rupture 8 :
somme = 212 ; cas de rupture 9 :
somme = 243 ; cas de rupture 10 :
somme = 273 ; cas de rupture 11 :
somme = 304 ; cas de rupture 12 :
somme = 334 ; pause ; valeur par défaut :
System.out.println("erreur de données");break;
}
sum=sum+day; /*Ajouter le nombre de jours dans un certain jour*/
if(year%400==0||(year%4==0&&year%100!=0))/*Jugez si c'est une année bissextile*/
sinon saut = 1 ;
saut = 0 ;
if(leap==1 &&month>2)/*S'il s'agit d'une année bissextile et que le mois est supérieur à 2, un jour doit être ajouté au nombre total de jours*/
somme++;
System.out.println("C'est le jour :"+sum);
}
}
[Programme 15] Question : Saisissez trois nombres entiers x, y, z Veuillez afficher ces trois nombres de petit à grand.
1. Analyse du programme : Nous trouvons un moyen de mettre le plus petit nombre sur x, comparons d'abord x avec y, si x > y puis échangeons les valeurs de x et y, puis comparons x avec z, si x > z échange les valeurs de x et z, afin que x puisse être minimisé.
importer java.util.*; test de classe publique { public static void main (String[]args){ int i=0;
System.out.print("Veuillez entrer trois chiffres/n");
Entrée du scanner = nouveau scanner (System.in);
je=input.nextInt();
j=input.nextInt();
k=iifnput.nextInt(); (i>j)
{
x = je;
je=j;
j=x;
}si(je>k)
{
x = je;
je=k;
k=x;
}si(j>k)
{
x=j;
j=k;
k=x;
}
System.out.println(i+", "+j+", "+k);
}
}
[Programme 16] Question : Formule de sortie 9*9.
1. Analyse du programme : considérez les lignes et les colonnes, il y a 9 lignes et 9 colonnes au total, je contrôle les lignes et j contrôle les colonnes.
classe publique Jiujiu { public static void main (String[] args)
{int je=0; int j=0; pour(i=1;i<=9;i++)
{ pour(j=1;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
Pas de produits répétés (triangle inférieur)
classe publique Jiujiu { public static void main (String[] args)
{int je=0; int j=0; pour(i=1;i<=9;i++)
{ pour(j=1;j<=i;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
triangle supérieur
classe publique Jiujiu { public static void main (String[] args)
{int je=0; int j=0; pour(i=1;i<=9;i++)
{ pour(j=i;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
[Procédure 17] Titre : 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 a mangé la moitié des pêches restantes le lendemain matin.
J'en ai mangé un 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.
1. Analyse du programme : adopter la méthode de la pensée inversée et déduire de l'arrière vers l'avant.
Un singe de classe publique mange une pêche {
static int total(int jour){ if(jour == 10){ return 1 ;
}else{ return (total(jour+1)+1)*2;
}
public s}tatic void main (String[] arguments)
{
System.out.println(total(1));
}}
[Procédure 18] Sujet : Deux équipes de tennis de table s'affrontent, chacune composée de trois joueurs. L'équipe A est composée de trois personnes a, b et c, et l'équipe B est composée de trois personnes x, y et z. Un tirage au sort a été effectué pour déterminer la liste des matchs. Quelqu’un a interrogé les joueurs sur la liste des joueurs pour le match. a a dit qu'il ne rivalisait pas avec x, et c a dit qu'il ne rivalisait pas avec x et z. Veuillez programmer un programme pour trouver la liste des joueurs des trois équipes.
1. Analyse du programme : Comment juger les nombres premiers : Utilisez un nombre pour diviser 2 en sqrt (ce nombre) respectivement. S'il peut être divisé, cela signifie que le nombre n'est pas un nombre premier, sinon c'est un nombre premier.
importer java.util.ArrayList ; classe publique pingpang {
pSutbrliincg sat,abt,icc; void main(String[] args) {
String[] op = { "x", "y", "z" };
ArrayList<pingpang> arrayList=new ArrayList<pingpang>(); pour (int i = 0; i < 3; i++) pour (int j = 0; j < 3; j++) pour (int k = 0; k < 3 ;k++) {
pingpang a=nouveau pingpang(op[i],op[j],op[k]); if(!aaequals(ab)&&!abequals(ac)&&!aaequals("x")
&&!acequals("x")&&!acequals("z")){
arrayList.add(a);
}
pour}(Objet a:arrayList){
System.out.println(a);
}
}public pingpang(Chaîne a, Chaîne b, Chaîne c) { super();
}
@pOubvelircride String toString() {
// TODO Stub de méthode généré automatiquement
return "l'adversaire de a est "+a+", "+" l'adversaire de b est "+b+", "+" l'adversaire de c est "+c+"/n" ;
}
}
【Programme 19】Titre : Imprimez le motif suivant (losange)
*
***
****
**********
****
***
*
1. Analyse du programme : Tout d'abord, divisez le graphique en deux parties. Les quatre premières lignes ont une règle et les trois dernières lignes ont une règle double for, la première couche contrôle les lignes et la deuxième couche contrôle les colonnes. .
triangle:
classe publique StartG { public static void main (String [] arguments)
{int je=0; int j=0; pour(i=1;i<=4;i++)
{ pour(j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}pour(i=4;i>=1;i--)
{ pour(j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
}
}
}
diamant:
classe publique StartG { public static void main (String [] arguments)
{int je=0; int j=0;
pour(i=1;i<=4;i++)
{ pour(int k=1; k<=4-i;k++)
System.out pour .print(" "); (j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}pour(i=4;i>=1;i--)
{ pour(int k=1; k<=5-i;k++)
pour System.out.print(" "); (j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
}
}
}
[Procédure 20] Question : Il existe une séquence de fractions : 2/1, 3/2, 5/3, 8/5, 13/8, 21/13... Trouver la somme des 20 premiers éléments de cette séquence .
1. Analyse du programme : veuillez comprendre les règles changeantes du numérateur et du dénominateur.
public class test20 { public static void main(String[] args) { float fm = 1f; float temp;
température = fm;
fm = fz;
fz = fz + temp;
somme += fz/fm ;
//System.out.println(somme);
}
System.out.println(somme);
}
}
[Programme 21] Question : Trouvez la somme de 1+2 !+3 !+...+20 !
1. Analyse du programme : ce programme transforme simplement l'accumulation en multiplication cumulative.
public class Ex21 { static long sum = 0; static long fac = 0; public static void main(String[] args) { long sum = 0; long fac = 1; ) {
fac = fac * je;
somme += fac;
}
System.out.println(somme);
}}
[Programme 22] Titre : Utilisez la méthode récursive pour trouver 5 !.
1. Analyse du programme : Formule récursive : fn=fn_1*4 !
importer java.util.Scanner ; classe publique Ex22 { public static void main (String[] args) {
Scanner s = new Scanner(System.in); int n = s.nextInt();
Ex22 tfr = nouveau Ex22();
System.out.println(tfr.recursion(n));
}
public longue récursion (int n) { valeur longue = 0; if (n ==1 || n == 0) {
valeur = 1 ;
} sinon si(n > 1) {
valeur = n * récursion (n-1);
}valeur de retour ;
}}
[Procédure 23] Question : Il y a 5 personnes assises ensemble. Quel âge a la cinquième personne ? Il a dit qu'il avait 2 ans de plus que la 4ème personne. Quand j'ai demandé à la 4ème personne quel âge il avait, il a répondu qu'il avait 2 ans de plus que la 3ème personne. J'ai demandé à la troisième personne et il m'a répondu qu'il avait deux ans de plus que la deuxième personne. J'ai demandé à la deuxième personne et j'ai dit qu'il avait deux ans de plus que la première personne. Finalement, j'ai demandé à la première personne et il m'a dit qu'il avait 10 ans. Quel âge a la cinquième personne ?
1. Analyse du programme : En utilisant la méthode récursive, la récursivité est divisée en deux étapes : le retour en arrière et la récursivité. Si vous voulez connaître l’âge de la cinquième personne, vous devez connaître l’âge de la quatrième personne, et ainsi de suite jusqu’à la première personne (10 ans).
Repoussez à nouveau.
public class Ex23 { static int getAge(int n){ if (n==1){ return 10;
}return 2 + getAge(n-1);
}public static void main(String[] arguments) {
System.out.println("Le cinquième âge est :"+getAge(5));
}
}
[Programme 24] Question : Étant donné un entier positif ne comportant pas plus de 5 chiffres, les exigences sont les suivantes : 1. Découvrez combien de chiffres il contient, et 2. Imprimez les chiffres dans l'ordre inverse.
importer java.util.Scanner ; classe publique Ex24 { public static void main (String[] args) {
Ex24 tn = nouveau Ex24();
Scanner s = new Scanner(System.in); long a = s.nextLong(); if(a < 0 || a > 100000) {
System.out.println("Erreur de saisie, veuillez réexécuter ce programme");
Système.exit(0);
}si(a >=0 && a <=9) {
System.out.println( a + "est un seul chiffre");
System.out.println("La sortie dans l'ordre inverse est " + '/n' + a);
} sinon si(a >= 10 && a <= 99) {
System.out.println(a + "est un nombre à deux chiffres");
System.out.println("La sortie dans l'ordre inverse est" );
tn.converse(a);
} sinon si(a >= 100 && a <= 999) {
System.out.println(a + "est un nombre à trois chiffres");
System.out.println("La sortie dans l'ordre inverse est" );
tn.converse(a);
} sinon si(a >= 1000 && a <= 9999) {
System.out.println(a + "est un nombre à quatre chiffres");
System.out.println("La sortie dans l'ordre inverse est" );
tn.converse(a);
} sinon si(a >= 10000 && a <= 99999) {
System.out.println(a + "est un nombre à cinq chiffres");
System.out.println("La sortie dans l'ordre inverse est" );
tn.converse(a);
}
}converse publique vide (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]);
}
}}
[Programme 25] Question : Un nombre à 5 chiffres, déterminez s'il s'agit d'un nombre palindrome. Autrement dit, 12321 est un nombre palindrome, le chiffre des unités est le même que celui des milliers et le chiffre des dizaines est le même que celui des milliers.
importer java.util.Scanner ; public class Ex25 { static int[] a = new static int[] b = public static void main(String[] args) { boolean is =false ;
Scanner s = new Scanner(System.in); long l = s.nextLong(); if (l > 99999 || l < 10000) {
System.out.println("Erreur de saisie, veuillez saisir à nouveau !");
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] = une[je];
}for(int i=0,j=4; i<5; i++, j--) { if(a[i] != b[j]) {
est = faux ; pause ;
} autre {
est = vrai ;
}
}if(est == faux) {
System.out.println("n'est pas un Palindrom !");
} sinon si(est == vrai) {
System.out.println("est un Palindrom !");
}
}}
[Programme 26] Question : Veuillez entrer la première lettre du jour de la semaine pour déterminer le jour de la semaine. Si les premières lettres sont les mêmes, continuez à déterminer la deuxième lettre.
1. Analyse du programme : Il est préférable d'utiliser un énoncé de situation. Si les premières lettres sont les mêmes, utilisez un énoncé de situation ou un énoncé if pour juger la deuxième lettre.
importer java.util.Scanner ; classe publique Ex26 { public static void main(String[] args){
//Enregistre la deuxième lettre saisie par l'utilisateur
char weekSecond;
// Instancie la classe Scanner en tant qu'objet d'entrée pour recevoir les entrées de l'utilisateur
Entrée du scanner = nouveau scanner (System.in);
// Commencer à demander et recevoir les entrées de la console utilisateur
System.out.print("Veuillez saisir la première lettre de la valeur de la semaine en anglais et je vous aiderai à déterminer le jour de la semaine :");
Lettre de chaîne = input.next();
// Détermine si la longueur de la chaîne d'entrée de la console utilisateur est d'une lettre
if (letter.length() == 1){
//Utilisez le caractère qui prend le premier bit d'index pour permettre au Scanner de recevoir une entrée de type char
char weekFirst = letter.charAt(0); switch (weekFirst){ case 'm' :
//Lorsque des lettres minuscules sont saisies, utilisez la fonctionnalité de structure de commutation pour exécuter la branche case suivante avec une instruction break pour implémenter la fonction d'ignorance de la sensibilité à la casse des entrées de la console utilisateur
cas 'M' :
System.out.println("Lundi");
pause ; cas 't' :
//Lorsque des lettres minuscules sont saisies, utilisez la fonctionnalité de structure de commutation pour exécuter la branche case suivante avec une instruction break pour implémenter la fonction d'ignorance de la sensibilité à la casse des entrées de la console utilisateur
cas 'T' :
System.out.print("Puisque mardi (mardi) et jeudi (jeudi) commencent tous deux par la lettre T, vous devez saisir la deuxième lettre pour juger correctement : ");
lettre = input.next();
// Détermine si la longueur de la chaîne d'entrée de la console utilisateur est d'une lettre
if (letter.length() == 1){
//Utilisez le caractère qui prend le premier bit d'index pour permettre au Scanner de recevoir une entrée de type char
weekSecond = lettre.charAt(0);
//Utilisez l'opérateur ou (||) pour implémenter la fonction d'ignorance de la sensibilité à la casse des entrées de la console utilisateur
if (weekSecond == 'U' || weekSecond == 'u'){
System.out.println("Mardi");
casser;
//Utilisez l'opérateur ou (||) pour implémenter la fonction d'ignorance de la sensibilité à la casse des entrées de la console utilisateur
} sinon if (weekSecond == 'H' || weekSecond == 'h'){
System.out.println("Jeudi");
casser;
//Message d'erreur de la console
} autre{
System.out.println("Erreur de saisie, la deuxième lettre de la valeur de la semaine ne peut pas être reconnue, le programme se termine !");
casser;
}
} autre {
//Message d'erreur de la console
System.out.println("Erreur de saisie, une seule lettre peut être saisie, le programme se termine !");
casser;
cas 'w' :
//Lorsque des lettres minuscules sont saisies, utilisez la fonctionnalité de structure de commutation pour exécuter la branche case suivante avec une instruction break pour implémenter la fonction d'ignorance de la sensibilité à la casse des entrées de la console utilisateur
cas 'W' :
System.out.println("Mercredi");
pause ; cas 'f' :
//Lorsque des lettres minuscules sont saisies, utilisez la fonctionnalité de structure de commutation pour exécuter la branche case suivante avec une instruction break pour implémenter la fonction d'ignorance de la sensibilité à la casse des entrées de la console utilisateur
cas 'F' :
System.out.println("Vendredi");
pause ; cas ' :
//Lorsque des lettres minuscules sont saisies, utilisez la fonctionnalité de structure de commutation pour exécuter la branche case suivante avec une instruction break pour implémenter la fonction d'ignorance de la sensibilité à la casse des entrées de la console utilisateur
cas 'S' :
System.out.print("Puisque samedi (samedi) et dimanche (dimanche) commencent tous deux par la lettre S, vous devez saisir la deuxième lettre pour juger correctement : ");
lettre = input.next();
// Détermine si la longueur de la chaîne d'entrée de la console utilisateur est d'une lettre
si (lettre.longueur() == 1){
//Utilisez le caractère qui prend le premier bit d'index pour permettre au Scanner de recevoir une entrée de type char
weekSecond = lettre.charAt(0);
//Utilisez l'opérateur ou (||) pour implémenter la fonction d'ignorance de la sensibilité à la casse des entrées de la console utilisateur
if (weekSecond == 'A' || weekSecond == 'a'){
System.out.println("Samedi");
casser;
//Utilisez l'opérateur ou (||) pour implémenter la fonction d'ignorance de la sensibilité à la casse des entrées de la console utilisateur
} sinon if (weekSecond == 'U' || weekSecond == 'u'){
System.out.println("Dimanche");
casser;
//Message d'erreur de la console
} autre{
System.out.println("Erreur de saisie, la deuxième lettre de la valeur de la semaine ne peut pas être reconnue, le programme se termine !");
casser;
}
} autre{
//Message d'erreur de la console
System.out.println("Erreur de saisie, une seule lettre peut être saisie, le programme se termine !");
casser;
défaut:
//Message d'erreur de la console
System.out.println("Erreur de saisie, la première lettre de la valeur de la semaine ne peut pas être reconnue, le programme se termine !");
casser;
}
} autre{
//Message d'erreur de la console
System.out.println("Erreur de saisie, une seule lettre peut être saisie, le programme se termine !");
}
}
}
[Programme 27] Titre : Trouver les nombres premiers à moins de 100
classe publique Ex27 { public static void main (String args[])
{int somme,i; pour(somme=2;somme<=100;somme++)
{pour(i=2;i<=somme/2;i++)
{if(sum%i==0) pause ;
}si(i>somme/2)
System.out.println(sum+"est un nombre premier");
}
}
}
[Programme 28] Sujet : Trier 10 nombres
1. Analyse du programme : vous pouvez utiliser la méthode de sélection, c'est-à-dire que parmi les 9 derniers processus de comparaison, sélectionnez le plus petit à échanger avec le premier élément, par analogie la prochaine fois, utilisez le deuxième élément pour comparer avec les 8 derniers éléments et. les échanger.
importer java.util.Arrays ; importer java.util.Random ; importer java.util.Scanner ; public class Ex28 { public static void main(String[] args) { int arr[] = new int[11] ;
Aléatoire r=nouveau Aléatoire(); pour(int i=0;i<10;i++){
arr[i]=r.nextInt(100)+1;//Obtenir 10 entiers dans 100
}
Arrays.sort pour (arr); (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
}
System.out.print("/nVeuillez saisir un numéro int : ");
Scanner sc = nouveau scanner (System.in);
arr[10]=sc.nextInt();//Entrez une valeur int
Aflorrays.sort(arr); (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
}
}
}
[Programme 29] Question : Trouver la somme des éléments diagonaux d'une matrice 3*3
1. Analyse du programme : utilisez les boucles double for pour contrôler l'entrée d'un tableau bidimensionnel, puis accumulez a[i][i] et sortez-le.
public class Ex29 { public static void main(String[] args){ double sum=0; int array[][]={{1,2,3},{4,5, 6},{7,7,8 }}; pour(int i=0;i<3;i++) pour(int j=0;j<3;j++){ si(i==j)
somme=somme + tableau[i][j];
}
System.out.println(somme);
}
}
[Programme 30] Question : Il y a un tableau qui a été trié. Entrez maintenant un nombre et insérez-le dans le tableau selon les règles d'origine.
1. Analyse du programme : déterminez d'abord si ce nombre est supérieur au dernier nombre, puis envisagez d'insérer le nombre du milieu. Après l'insertion, les nombres après cet élément seront reculés d'une position à tour de rôle.
importer java.util.Random ; classe publique ArraySort { public static void main (String[] args)
{ int temp=0; int monarr[] = nouveau int[12];
Aléatoire r=nouveau Aléatoire(); pour(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];
monarr[i]=monarr[k];
monarr[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--)
monarr[j]=monarr[j-1];
monarr[k]=temp;
}
forSystem.out.println(""); (int k=1;k<=11;k++)
System.out.print(myarr[k]+",");
}
}
[Programme 31] Titre : Afficher un tableau dans l'ordre inverse.
Analyse du programme : échangez le premier et le dernier.
En fait, il est plus simple de contrôler les variables avec une boucle :
pour(int k=11;k>=1;k--)
System.out.print(myarr[k]+",");
[Programme 32] Titre : Prendre les 4 à 7 chiffres d'un entier a en commençant par l'extrémité droite.
Analyse du programme : vous pouvez y penser de cette façon :
(1) Décalez d’abord a vers la droite de 4 bits.
(2) Définissez un nombre dont les 4 bits inférieurs sont tous à 1 et le reste à 0. Disponible~(~0 < <4)
(3) Effectuez une opération sur les deux ci-dessus.
classe publique 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);
}}
【Programme 33】
Question : Imprimez le triangle de Yang Hui (nécessaire pour imprimer 10 lignes comme indiqué ci-dessous)
1. Analyse du programme :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
public class Ex33 { public static void main(String args[]){ int i,j int a[][];
a=nouveau int[8][8]; pour(i=0;i<8;i++){
une[i][i]=1;
une[i][0]=1;
pour}(i=2;i<8;i++){ pour(j=1;j<=i-1;j++){
une[i][j]=a[i-1][j-1]+a[i-1][j];
}
}pour(i=0;i<8;i++){ pour(j=0;j<i;j++){
System.out.printf(" "+a[i][j]);
}
System.out.println();
}
}
}
[Programme 34] Question : Saisissez 3 nombres a, b, c et affichez-les par ordre de taille.
1. Analyse de programme : à l'aide de méthodes de pointeurs.
classe publique Ex34 { public static void main (String[] args)
{int []arrays = {800,56,500}; pour(int i=arrays.length;--i>=0;)
{pour(int j=0;j<i;j++)
{if(tableaux[j]>tableaux[j+1])
{int temp=tableaux[j];
tableaux[j]=tableaux[j+1];
tableaux[j+1]=temp;
}}} pour(int n=0;n<arrays.length;n++)
System.out.println(tableaux[n]);
}
}
[Programme 35] Titre : saisissez un tableau, échangez le plus grand élément avec le premier élément, échangez le plus petit élément avec le dernier élément et sortez le tableau.
importer java.util.*; public class Ex35 { public static void main(String[] args) { int i, min, max, n, temp1, temp2 int a[];
System.out.println("Saisissez la longueur du tableau :");
Clavier du scanner = nouveau scanner (System.in) ;
n = clavier.nextInt();
a = nouveau int[n]; pour (i = 0; i < n; i++) {
System.out.print("Entrez le "th" + (i + 1) + "data");
a[i] = clavier.nextInt();
}
//Ce qui précède est l'entrée de l'ensemble du tableau
maximum = 0 ;
min = 0 ;
//Définit deux drapeaux, en commençant par les deux pointant vers le premier nombre
pour (i = 1; i < n; i++) { if (a[i] > a[max])
max = i; //Parcourt le tableau, s'il est supérieur à a[max], attribue son indice de tableau à max
si (a[i] < a[min])
min = i; //Identique à ci-dessus, s'il est inférieur à a[min], attribuez son indice de tableau à min
}
//La boucle for ci-dessus trouve les valeurs maximales et minimales, max est l'indice de la valeur maximale, min est l'indice de la valeur minimale
temp1 = a[0];
temp2 = a[min]; //Ces deux temps sont uniquement destinés à être utilisés en échange
un[0] = un[max];
a[max] = temp1; //Premier échange a[0] et la valeur maximale a[max]
if (min != 0) { //Si la valeur minimale n'est pas a[0], exécutez ce qui suit
une[min] = une[n - 1] ;
a[n - 1] = temp2; //Échange a[min] et a[n-1]
} else { //Si la valeur minimale est a[0], exécutez ce qui suit
une[max] = une[n - 1];
a[n - 1] = temp1;
}
for (i = 0; i < n; i++) { //Tableau de sortie
System.out.print(a[i] + " ");
}}}
[Programme 36] Question : Il y a n nombres entiers, de sorte que les nombres précédents sont décalés vers l'arrière de m positions et que les m derniers nombres deviennent les m premiers nombres [Programme 37]
Question : Il y a n personnes assises en cercle et les numérotant dans l’ordre. Commencez à compter à partir de la première personne (en comptant de 1 à 3).
import java.util.scanner;
Scanner S = nouveau scanner (System.in);
arr [i] = true; // Lorsque l'indice est vrai, cela signifie qu'il est toujours dans le cercle
} int LeftCount = n; int countnum = 0;
if (arr [index] == true) {// en cas de cercle
countnum ++; // complément compte
if (countnum == 3) {// lors du rapport 3
countnum = 0; // continue de compter à partir de zéro
arr [index] = false; // cette personne quitte le cercle
LeftCount -; // Le nombre restant de personnes est réduit d'un
}
}
index ++; // Chaque fois qu'un nombre est signalé, l'indice augmente d'un
if (index == n) {// c'est un nombre circulaire.
index = 0; // Définissez l'index sur zéro et recommencez.
}
} pour (int i = 0; i <n; i ++) {if (arr [i] == true) {
System.out.println(i);
}
}
}
}
【Programme 38】
Question: Écrivez une fonction pour trouver la longueur d'une chaîne.
import java.util.scanner;
{
Scanner s = nouveau scanner (System.in);
System.out.println("Veuillez entrer une chaîne");
String mys = s.next ();
System.out.println (str_len (mys));
} public static int str_len (String x)
{return x.length ();
}
}
Question: Écrivez une fonction. 1 + 1/3 + ... + 1 / n
【Programme 39】
Sujet: tri des chaînes.
Importer Java.util. *;
{
ArrayList <string> list = new ArrayList <string> ();
list.add ("010101");
list.add ("010003");
list.add ("010201");
Collection.Sort pour (list);
System.out.println (list.get (i));
}}}
【Programme 40】
Sujet: Il y a un tas de pêches sur la plage, et cinq singes doivent les diviser. Le premier singe a divisé la pile de pêches en cinq parties. Le deuxième singe a divisé la pêche restante en cinq parties égales, et il y en avait un de plus. là sur la plage?
classe publique DG {
statique int ts = 0; // nombre total de pêches
int fs = 1; // enregistrer le nombre de points
statique int hs = 5; // nombre de singes ...
int tsscope = 5000;
public int ft (int t) {if (t == tsscope) {
// annuler la récursivité lorsque le nombre de pêches atteint la plage de valeur maximale
System.out.println ("end");
renvoie 0 ;
} else {if ((t-1)% hs == 0 && fs <= hs) {if (fs == hs)
{
System.out.println ("La condition de division de pêche est remplie lorsque le nombre de peeches =" + ts + "");
}
fs + = 1;
Retour ft ((t-1) / 5 * 4); // retourne le montant total laissé après que le singe en ait pris un morceau
}autre
{
// Les conditions ne sont pas remplies
fs = 1;
retourner ft (ts + = 1); // ajouter +1 au nombre de pêches
}}}
public static void main (String [] args) {new DG (). ft (0);
}
}