[Procedimiento 1] Título: Problema clásico: Hay un par de conejos. Dan a luz un par de conejos cada mes desde el tercer mes después del nacimiento. Después de que el conejo crece hasta el cuarto mes, da a luz un par de conejos. cada mes Si los conejos Incluso si no mueren, ¿cuál es el número total de conejos cada mes?
1. Análisis del programa: El patrón de los conejos es la secuencia 1,1,2,3,5,8,13,21....
clase pública exp2{ public static void main(String args[]){ int i=0 for(i=1;i<=20;i++)
System.out.println(f(i));
}público estático int f(int x)
{ if(x==1 || x==2) devuelve 1;
devolver f(x-1)+f(x-2);
}
}
o
clase pública exp2{ public static void main(String args[]){ int i=0;
matemáticas mymath = nuevas matemáticas(); para(i=1;i<=20;i++)
System.out.println(mymath.f(i));
}
}clase de matemáticas
{público int f (int x)
{ if(x==1 || x==2) devuelve 1;
devolver f(x-1)+f(x-2);
}
}
[Programa 2] Pregunta: Determine cuántos números primos hay entre 101 y 200 y genere todos los números primos.
1. Análisis del programa: Cómo determinar números primos: use un número para dividir 2 en sqrt (este número) respectivamente.
Significa que este número no es un número primo, de lo contrario es un número primo.
clase pública exp2{ public static void main(String args[]){ int i=0;
matemáticas mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true)
System.out.println(i);
}
}clase de matemáticas
{público int f (int x)
{ if(x==1 || x==2) devuelve 1;
devolver f(x-1)+f(x-2);
}público booleano iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) devuelve falso;
}
}
[Procedimiento 3] Título: Imprima todos los "números de narciso". El llamado "número de narciso" se refiere a un número de tres dígitos cuya suma cúbica es igual al número mismo. Por ejemplo: 153 es un "número de narciso" porque 153 = 1 al cubo + 5 al cubo + 3 al cubo.
1. Análisis del programa: utilice un bucle for para controlar entre 100 y 999 números y descomponga cada número en unidades, decenas y centenas.
clase pública exp2{
public static void main(String args[]){ int i=0;
matemáticas mymath = new math(); for(i=100;i<=999;i++) if(mymath.shuixianhua(i)==true)
System.out.println(i);
}
}clase de matemáticas
{público int f (int x)
{ if(x==1 || x==2) devuelve 1;
devolver f(x-1)+f(x-2);
}público booleano iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) devuelve falso;
}público booleano shuixianhua(int x)
{int i=0,j=0,k=0;
yo=x/100;
j=(x % 100) /10;
ik=fx % 10; (x==i*i*i+j*j*j+k*k*k) devuelve verdadero;
devolver falso;
}
}
【Procedimiento 4】Título: Descomponer un número entero positivo en factores primos. Por ejemplo: ingrese 90, imprima 90 = 2*3*3*5.
Análisis del programa: para descomponer n en factores primos, primero debe encontrar un número primo mínimo k y luego completarlo de acuerdo con los siguientes pasos:
(1) Si este número primo es exactamente igual a n, significa que el proceso de descomposición de factores primos ha finalizado, simplemente imprímalo.
(2) Si n <> k, pero n es divisible por k, se debe imprimir el valor de k y el cociente de n dividido por k se debe utilizar como un nuevo entero positivo y se debe repetir el primer paso.
(3) Si n no es divisible por k, utilice k+1 como valor de k y repita el primer paso.
clase pública exp2{ exp2 pública(){} 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);///Esta oración no se puede omitir, de lo contrario el resultado será incorrecto
}public static void main(String[] args){
Cadena cadena="";
exp2 c=nueva exp2();
str=javax.swing.JOptionPane.showInputDialog("Ingrese el valor de N (ingrese salida para salir):");
entero norte;
Nt=r0y;{
N=Integer.parseInt(cadena);
}catch(NumberFormatException e){
e.printStackTrace();
}
System.out.print(N+"Descomposición de factores primos:"+N+"=");
c.fengjie(N);
}
}
[Programa 5] Pregunta: Utilice el anidamiento de operadores condicionales para completar esta pregunta: los estudiantes con puntajes académicos> = 90 puntos están representados por A, los estudiantes con puntajes entre 60 y 89 están representados por B y los estudiantes con puntajes inferiores a 60 están representados por C.
1. Análisis del programa: (a> b)?a:b Este es un ejemplo básico de operador condicional.
importar javax.swing.*; clase pública ex5 {public static void main(String[] args){
Cadena cadena="";
str=JOptionPane.showInputDialog("Ingrese el valor de N (ingrese salida para salir):");
entero norte;
Nt=r0y;{
N=Integer.parseInt(cadena);
ca}tch(NumberFormatException e){
e.printStackTrace();
}
cadena=(N>90?"A":(N>60?"B":"C"));
System.out.println(cadena);
}
}
[Programa 6] Pregunta: Ingrese dos números enteros positivos myn, y encuentre su máximo común divisor y su mínimo común múltiplo.
1. Análisis del programa: utilice el método de evaporación.
Máximo común divisor:
clase pública CommonDivisor { principal vacío estático público (argumentos de cadena [])
{ comúnDivisor(24,32);
}estático int commonDivisor(int M, int N)
{si(N<0||M<0)
{
Sryesttuermn.out.println("¡ERROR!");
}si(N==0)
{
rSeytsutrenm.out.println("el máximo común divisor es :"+M);
}return commonDivisor(N,M%N);
}
}
Mínimo común múltiplo y máximo común divisor:
importar java.util.Scanner clase pública CandC;
{
//El siguiente método es encontrar el máximo común divisor.
público estático int gcd (int m, int n)
{mientras (verdadero)
{si ((m = m % n) == 0) devuelve n; si ((n = n % m) == 0) devuelve m;
}}
public static void main (String args []) lanza una excepción
{
//Obtener valor de entrada
//Barbilla del escáner = new Scanner(System.in);
/i/ntint a = chin.siguienteInt(), b = chin.siguienteInt(); a=23;
System.out.println("Mínimo común múltiplo: " + a * b / c + "/n Máximo común divisor: " + c);
}}
[Programa 7] Pregunta: Ingrese una línea de caracteres y cuente el número de letras, espacios, números y otros caracteres en inglés que contiene.
1. Análisis del programa: utilizando la declaración while, la condición es que el carácter de entrada no sea '/ n'.
importar java.util.Scanner; clase pública ex7 { principal vacío estático público (argumentos de cadena [])
{
System.out.println("Ingrese una cadena:");
Exploración del escáner = nuevo escáner (System.in);
Cadena str=scan.next();
Cadena E1="[/u4e00-/u9fa5]";
Sintrting E2="[a-zA-Z]"; countH=0; int countE=0; char[] arrChar=str.toCharArray();
Cadena[] arrStr=nueva Cadena[arrChar.length] para (int i=0;i<arrChar.length;i++)
{
arrStr[i]=String.valueOf(arrChar[i]);
}para (Cadena i: arrStr )
{si (i.coincide (E1))
{
contarH++;
}si (i.coincide(E2))
{
contarE++;
}
}
System.out.println("Número de caracteres chinos"+countH);
System.out.println("Número de letras"+countE);
}
}
[Procedimiento 8] Pregunta: Encuentre el valor de s=a+aa+aaa+aaaa+aa...a, donde a es un número. Por ejemplo, 2+22+222+2222+22222 (en este momento se agregan un total de 5 números. La suma de varios números se controla mediante el teclado).
1. Análisis del programa: La clave es calcular el valor de cada ítem.
importar java.io.*; clase pública Sumloop {public static void main(String[] args) lanza IOException
{int s=0;
Salida de cadena="";
Estadio BufferedReader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Ingrese el valor de a");
Entrada de entrada =stadin.readLine(); (int i =1;i<=Integer.parseInt(entrada);i++)
{
ionuttput+=entrada; a=Integer.parseInt(salida);
s+=a;
}
System.out.println(s);
}
}
Otra explicación:
importar java.io.*; clase pública Sumloop {public static void main(String[] args) lanza IOException
{int s=0;int n;int t=0;
Estadio BufferedReader = new BufferedReader(new InputStreamReader(System.in));
Entrada de cadena = stadin.readLine();
fno=rInteger.parseInt(entrada); (int i=1;i<=n;i++){
t=t*10+n;
s=s+t;
System.out.println(t);
}
System.out.println(s);
}
}
[Programa 9] Pregunta: Si un número es exactamente igual a la suma de sus factores, el número se llama "número perfecto". Por ejemplo, 6=1+2+3 Programa para encontrar todos los números perfectos hasta 1000.
clase pública Wanshu { principal vacío estático público (cadena [] argumentos)
{ int s; para (int i = 1; i <= 1000; i ++)
{
fs=o0r;(int j=1;j<i;j++) si(i % j==0)
si s=s+j; (s==yo)
System.out.print(i+" ");
}
System.out.println();
}
}
[Procedimiento 10] Pregunta: Una pelota cae libremente desde una altura de 100 metros. Cada vez que golpea el suelo, rebota hasta la mitad de su altura original. Cuando vuelve a caer, ¿cuántos metros recorre en total cuando golpea? el suelo por décima vez? ¿A qué altura está el décimo rally?
clase pública Ex10 { principal vacío estático público (cadena [] argumentos)
{ doble s=0; doble t=100; para(int i=1;i<=10;i++)
{
s+=t;
t=t/2;
}
System.out.println(s);
System.out.println(t);
}
}
[Procedimiento 11] Pregunta: Hay 1, 2, 3 y 4 números. ¿Cuántos números diferentes de tres dígitos se pueden formar sin números repetidos? ¿Cuantos son?
1. Análisis del programa: los números que se pueden completar en las centenas, decenas y unidades son 1, 2, 3 y 4. Después de componer todas las permutaciones, elimine las permutaciones que no cumplan las condiciones.
clase pública Wanshu { principal vacío estático público (cadena [] argumentos)
{ int i=0; int j=0; int k=0; int t=0; para(i=1;i<=4;i++) para(j=1;j<=4;j++) para(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);
}
}
[Procedimiento 12] Pregunta: Los bonos emitidos por la empresa se basan en comisiones de ganancias. Cuando el beneficio (I) es inferior o igual a 100.000 yuanes, la bonificación se puede aumentar en un 10%; cuando el beneficio es superior a 100.000 yuanes y menos de 200.000 yuanes, la porción inferior a 100.000 yuanes está sujeta a un 10%; comisión, y si el beneficio es superior a 100.000 yuanes, la bonificación es del 10% para la parte entre 200.000 y 400.000 RMB, la comisión es del 5% para la parte superior a 200.000 RMB para la parte entre 400.000 y 600.000 RMB; la comisión es del 3% para la parte superior a 400.000 RMB; cuando está entre 600.000 y 1 millón, la parte superior a 600.000 yuanes se puede cobrar al 1,5%. Cuando es superior a 1 millón de yuanes, la parte superior a 1 millón de yuanes es 1. % de comisión. Ingrese la ganancia I del mes actual desde el teclado. Por favor responda ¿El número total de bonos distribuidos?
1. Análisis del programa: utilice el eje numérico para dividir y ubicar. Tenga en cuenta que la bonificación debe definirse como un número entero al definir.
importar java .util.*; prueba de clase pública {public static void main (String[]args){
suma doble;//Declarar el bono a emitir en la variable a almacenar
Entrada del escáner = nuevo escáner (System.in); // Importar escáner
System.out.print ("Ingrese las ganancias del mes actual");
double lirun=input .nextDouble();//Ingrese ganancias desde la consola
si(lirun<=100000){
suma=lirun*0.1;
}si no (lirun<=200000){
suma=10000+lirun*0,075;
}si no (lirun<=400000){
suma=17500+lirun*0,05;
}si no (lirun<=600000){
suma=lirun*0.03;
}si no (lirun<=1000000){
suma=lirun*0.015;
} demás{
suma=lirun*0.01;
}
System.out.println("El bono que se debe pagar es "+suma);
}
}
El lector puede mejorar el código para otras situaciones siguientes.
【Procedimiento 13】
Pregunta: Un número entero, después de sumar 100, se convierte en un número cuadrado perfecto, y al sumar 168, se convierte en un número cuadrado perfecto. ¿Cuál es este número?
1. Análisis del programa: para juzgar dentro de 100.000, primero agregue 100 al número antes de prescribir, luego agregue 268 al número y luego prescriba. Si el resultado después de prescribir cumple con las siguientes condiciones, es el resultado. Consulte el análisis específico:
prueba de clase pública {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) &&
Matemáticas.piso(Math.sqrt(k+168))==Math.sqrt(k+168))
System.out.println(k);
}
}
[Programa 14] Pregunta: Ingrese un año determinado, un mes determinado y un día determinado, y determine qué día del año es este día.
1. Análisis del programa: tomando como ejemplo el 5 de marzo, primero se deben sumar los dos meses anteriores y luego agregar 5 días, que es el día del año. Circunstancias especiales, como años bisiestos y meses de entrada mayores a 3. Es necesario considerar agregar un día adicional.
importar java.util.*; prueba de clase pública {pública estática vacía principal (String[]args){ int día=0; int año=0;
System.out.print("Ingrese año, mes, día/n");
Entrada del escáner = nuevo escáner (System.in);
año=entrada.nextInt();
mes=entrada.nextInt();
día=entrada.nextInt();
switch(mes) /*Primero calcula el número total de días del mes anterior*/
{caso 1:
suma=0;romper; caso 2:
suma=31;ruptura; caso 3:
suma=59;ruptura; caso 4:
suma=90;ruptura; caso 5:
suma=120;ruptura; caso 6:
suma=151;ruptura; caso 7:
suma=181;ruptura; caso 8:
suma=212;ruptura; caso 9:
suma=243;ruptura; caso 10:
suma=273;ruptura; caso 11:
suma=304;ruptura; caso 12:
suma=334;romper; valor predeterminado:
System.out.println("error de datos");break;
}
sum=sum+day /*Suma el número de días en un día determinado*/
if(year%400==0||(year%4==0&&year%100!=0))/*Juzga si es un año bisiesto*/
otro salto = 1;
salto=0;
if(leap==1 && mes>2)/*Si es un año bisiesto y el mes es mayor que 2, se debe agregar un día al número total de días*/
suma++;
System.out.println("Es el día:"+suma);
}
}
[Programa 15] Pregunta: Ingrese tres números enteros x, y, z. Genere estos tres números de pequeño a grande.
1. Análisis del programa: encontramos una manera de poner el número más pequeño en x, primero comparamos x con y, si x> y luego intercambiamos los valores de x e y, y luego comparamos x con z, si x> z intercambia los valores de x y z, de modo que x pueda minimizarse.
importar java.util.*; prueba de clase pública { public static void main (String[]args){ int i=0;
System.out.print("Ingrese tres números/n");
Entrada del escáner = nuevo escáner (System.in);
i=entrada.nextInt();
j=entrada.nextInt();
k=iifnput.siguienteInt(); (i>j)
{
x=yo;
i=j;
j=x;
}si(i>k)
{
x=i;
yo=k;
k=x;
}si(j>k)
{
x=j;
j=k;
k=x;
}
System.out.println(i+", "+j+", "+k);
}
}
[Programa 16] Pregunta: Salida de fórmula 9*9.
1. Análisis del programa: considere filas y columnas, hay 9 filas y 9 columnas en total, i controla las filas y j controla las columnas.
clase pública jiujiu { principal vacío estático público (cadena [] argumentos)
{ int i = 0; int j = 0; para (i = 1; i <= 9; i ++)
{ para(j=1;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
Sin productos repetidos (triángulo inferior)
clase pública jiujiu { principal vacío estático público (cadena [] argumentos)
{ int i = 0; int j = 0; para (i = 1; i <= 9; i ++)
{ para(j=1;j<=i;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
triangulo superior
clase pública jiujiu { principal vacío estático público (cadena [] argumentos)
{ int i = 0; int j = 0; para (i = 1; i <= 9; i ++)
{ para(j=i;j<=9;j++)
System.out.print(i+"*"+j+"="+i*j+"/t");
System.out.println();
}
}}
[Procedimiento 17] Título: Mono comiendo melocotones Problema: El mono recogió algunos melocotones el primer día, se comió la mitad inmediatamente y aún no estaba satisfecho se comió uno más y se comió la mitad de los melocotones restantes a la mañana siguiente.
Comí uno más. A partir de entonces, cada mañana comía media y una de las sobras del día anterior. Cuando quise comer más en la mañana del décimo día, vi que solo quedaba un melocotón. Descubra cuántos se recogieron el primer día.
1. Análisis del programa: adopte el método de pensamiento inverso e infiera de atrás hacia adelante.
mono de clase pública come melocotón {
static int total(int día){ if(día == 10){ return 1;
}else{ return (total(día+1)+1)*2;
}
public s}static void main(String[] args)
{
System.out.println(total(1));
}}
[Procedimiento 18] Tema: Compiten dos equipos de tenis de mesa, cada uno con tres jugadores. El equipo A consta de tres personas a, byc, y el equipo B consta de tres personas x, y y z. Se ha realizado un sorteo para determinar la lista de partidos. Alguien preguntó a los jugadores sobre la plantilla para el partido. a dijo que no compite con x, y c dijo que no compite con x y z. Programe un programa para encontrar la lista de jugadores de los tres equipos.
1. Análisis del programa: Cómo juzgar números primos: use un número para dividir 2 en sqrt (este número) respectivamente. Si se puede dividir, significa que el número no es un número primo; de lo contrario, es un número primo.
importar java.util.ArrayList clase pública pingpang {
pSutbrliincg sat,abt,icc; void main(String[] args) {
Cadena[] op = { "x", "y", "z" };
ArrayList<pingpang> arrayList=new ArrayList<pingpang>(); para (int i = 0; i < 3; i++) para (int j = 0; j < 3; j++) para (int k = 0; k < 3 ;k++) {
pingpang a=nuevo pingpang(op[i],op[j],op[k]); if(!aaequals(ab)&&!abequals(ac)&&!aaequals("x")
&&!acequals("x")&&!acequals("z")){
arrayList.add(a);
}
para}(Objeto a:arrayList){
System.out.println(a);
}
}pingpang público (Cadena a, Cadena b, Cadena c) { super(); this.a = a;
}
@pOubvelircride Cadena toString() {
// TODO Código auxiliar de método generado automáticamente
return "el oponente de a es "+a+", "+"el oponente de b es "+b+", "+"el oponente de c es "+c+"/n";
}
}
【Programa 19】Título: Imprima el siguiente patrón (diamante)
*
***
****
**********
****
***
*
1. Análisis del programa: primero, divida el gráfico en dos partes. Las primeras cuatro filas tienen una regla y las últimas tres filas tienen una regla. Utilice bucles dobles, la primera capa controla las filas y la segunda capa controla las columnas. .
triángulo:
clase pública StartG {public static void main(String [] args)
{ int i = 0; int j = 0; para (i = 1; i <= 4; i ++)
{ para(j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}para(i=4;i>=1;i--)
{ para(j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
}
}
}
diamante:
clase pública StartG {public static void main(String [] args)
{int i=0;int j=0;
para(i=1;i<=4;i++)
{ para(int k=1; k<=4-i;k++)
System.out para .print(" "); (j=1;j<=2*i-1;j++)
System.out.print("*");
System.out.println("");
}para(i=4;i>=1;i--)
{ para(int k=1; k<=5-i;k++)
para System.out.print(" "); (j=1;j<=2*i-3;j++)
System.out.print("*");
System.out.println("");
}
}
}
[Procedimiento 20] Pregunta: Hay una secuencia de fracciones: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13... Encuentra la suma de los primeros 20 elementos de esta secuencia. .
1. Análisis del programa: comprenda las reglas cambiantes del numerador y denominador.
prueba de clase pública20 { public static void main(String[] args) { float fm = 1f; float fz = 1f; float suma = 0f;
temperatura = fm;
fm = fz;
fz = fz + temperatura;
suma += fz/fm;
//System.out.println(suma);
}
System.out.println(suma);
}
}
[Programa 21] Pregunta: Encuentra la suma de 1+2!+3!+...+20!
1. Análisis del programa: este programa simplemente convierte la acumulación en multiplicación acumulativa.
clase pública Ex21 { suma larga estática = 0; fac larga estática = 0; principal vacío estático (String[] args) { suma larga = 0; fac largo = 1; ) {
fac = fac * i;
suma += fac;
}
System.out.println(suma);
}}
[Programa 22] Título: ¡Usa el método recursivo para encontrar 5!.
1. Análisis del programa: Fórmula recursiva: fn=fn_1*4!
importar java.util.Scanner; clase pública Ex22 {public static void main(String[] args) {
Escáner s = nuevo escáner (System.in) int n = s.nextInt();
Ex22 tfr = nuevo Ex22();
System.out.println(tfr.recursion(n));
}
recursividad larga pública (int n) { valor largo = 0; if(n ==1 || n == 0) {
valor = 1;
} más si(n > 1) {
valor = n * recursividad (n-1);
}valor de retorno;
}}
[Procedimiento 23] Pregunta: Hay 5 personas sentadas juntas. ¿Cuántos años tiene la quinta persona? Dijo que era 2 años mayor que la cuarta persona. Cuando le pregunté a la cuarta persona cuántos años tenía, dijo que era 2 años mayor que la tercera persona. Le pregunté a la tercera persona y me dijo que era dos años mayor que la segunda. Preguntó a la segunda persona y dijo que era dos años mayor que la primera. Finalmente le pregunté a la primera persona y me dijo que tenía 10 años. ¿Cuántos años tiene la quinta persona?
1. Análisis del programa: utilizando el método recursivo, la recursividad se divide en dos etapas: retroceso y recursividad. Si quieres saber la edad de la quinta persona, necesitas saber la edad de la cuarta persona, y así sucesivamente, hasta la primera persona (10 años).
Empuja hacia atrás de nuevo.
clase pública Ex23 { static int getAge(int n){ if (n==1){ return 10;
}return 2 + getAge(n-1);
}public static void main(String[] argumentos) {
System.out.println("La quinta edad es:"+getAge(5));
}
}
[Programa 24] Pregunta: Dado un número entero positivo con no más de 5 dígitos, los requisitos son: 1. Averiguar cuántos dígitos tiene y 2. Imprimir los dígitos en orden inverso.
importar java.util.Scanner; clase pública Ex24 {public static void main(String[] args) {
Ex24 tn = nuevo Ex24();
Escáner s = nuevo escáner (System.in); long a = s.nextLong(); if(a < 0 || a > 100000) {
System.out.println("Error de entrada, ejecute este programa nuevamente");
Sistema.salir(0);
}si(a >=0 && a <=9) {
System.out.println( a + "es un solo dígito");
System.out.println("La salida en orden inverso es " + '/n' + a);
} más si(a >= 10 && a <= 99) {
System.out.println(a + "es un número de dos dígitos");
System.out.println("La salida en orden inverso es");
tn.converse(a);
} más si(a >= 100 && a <= 999) {
System.out.println(a + "es un número de tres dígitos");
System.out.println("La salida en orden inverso es");
tn.converse(a);
} más si(a >= 1000 && a <= 9999) {
System.out.println(a + "es un número de cuatro dígitos");
System.out.println("La salida en orden inverso es");
tn.converse(a);
} más si(a >= 10000 && a <= 99999) {
System.out.println(a + "es un número de cinco dígitos");
System.out.println("La salida en orden inverso es");
tn.converse(a);
}
}conversación pública vacía (l larga) {
Cadena s = Long.toString char (l); [] ch = s.toCharArray(); for(int i=ch.length-1; i>=0; i--) {
System.out.print(ch[i]);
}
}}
[Programa 25] Pregunta: Un número de 5 dígitos, determine si es un número palíndromo. Es decir, 12321 es un número palíndromo, el dígito de las unidades es el mismo que el de los millares y el dígito de las decenas es el mismo que el de los millares.
importar java.util.Scanner; clase pública Ex25 { int estático [] a = nuevo int [5]; ;
Escáner s = nuevo escáner (System.in); long l = s.nextLong(); if (l > 99999 || l < 10000) {
System.out.println("Error de entrada, ¡ingrese de nuevo!");
l = s.nextLong();
}for (int i = 4; i >= 0; i--) { a[i] = (int) (l / (long) Math.pow(10, i));
l =(l % (largo) 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--) { si(a[i] != b[j]) {
es = falso;
} demás {
es = verdadero;
}
}si(es == falso) {
System.out.println("¡no es un Palindrom!");
} más si (es == verdadero) {
System.out.println("¡es un palíndromo!");
}
}}
[Programa 26] Pregunta: Ingrese la primera letra del día de la semana para determinar el día de la semana. Si las primeras letras son iguales, continúe determinando la segunda letra.
1. Análisis del programa: es mejor utilizar una declaración de situación si las primeras letras son iguales, utilice una declaración de situación o una declaración if para juzgar la segunda letra.
importar java.util.Scanner; clase pública Ex26 {public static void main(String[] args){
//Guarda la segunda letra ingresada por el usuario
char semanaSegundo;
//Crea una instancia de la clase Scanner como un objeto de entrada para recibir la entrada del usuario
Entrada del escáner = nuevo escáner (System.in);
//Comienza a solicitar y recibir la entrada de la consola del usuario
System.out.print("Ingrese la primera letra del valor de la semana en inglés y lo ayudaré a determinar el día de la semana:");
Letra de cadena = input.next();
//Determinar si la longitud de la cadena de entrada de la consola del usuario es una letra
si (letra.longitud() == 1){
//Utiliza el carácter que ocupa el primer bit de índice para permitir que el escáner reciba entrada de tipo char
char semanaPrimera = letra.charAt(0); cambiar (semanaPrimera){ caso 'm':
//Cuando se ingresan letras minúsculas, use la función de estructura de cambio para ejecutar la siguiente rama de mayúsculas y minúsculas con una declaración de interrupción para implementar la función de ignorar la distinción entre mayúsculas y minúsculas de la entrada de la consola del usuario
caso 'M':
System.out.println("Lunes");
romper; caso 't':
//Cuando se ingresan letras minúsculas, use la función de estructura de cambio para ejecutar la siguiente rama de mayúsculas y minúsculas con una declaración de interrupción para implementar la función de ignorar la distinción entre mayúsculas y minúsculas de la entrada de la consola del usuario
caso 'T':
System.out.print("Dado que el martes (martes) y el jueves (jueves) comienzan con la letra T, debes ingresar la segunda letra para juzgar correctamente: ");
letra = entrada.siguiente();
//Determinar si la longitud de la cadena de entrada de la consola del usuario es una letra
si (letra.longitud() == 1){
//Utiliza el carácter que ocupa el primer bit de índice para permitir que el escáner reciba entrada de tipo char
semanaSegunda = letra.charAt(0);
//Utilice el operador o (||) para implementar la función de ignorar la distinción entre mayúsculas y minúsculas de la entrada de la consola del usuario
if (semanaSegunda == 'U' || semanaSegunda == 'u'){
System.out.println("Martes");
romper;
//Utilice el operador o (||) para implementar la función de ignorar la distinción entre mayúsculas y minúsculas de la entrada de la consola del usuario
} else if (semanaSegunda == 'H' || semanaSegunda == 'h'){
System.out.println("Jueves");
romper;
//mensaje de error de la consola
} demás{
System.out.println("Error de entrada, no se puede reconocer la segunda letra del valor de la semana, ¡el programa finaliza!");
romper;
}
} demás {
//mensaje de error de la consola
System.out.println("Error de entrada, solo se puede ingresar una letra, ¡el programa finaliza!");
romper;
caso 'w':
//Cuando se ingresan letras minúsculas, use la función de estructura de cambio para ejecutar la siguiente rama de mayúsculas y minúsculas con una declaración de interrupción para implementar la función de ignorar la distinción entre mayúsculas y minúsculas de la entrada de la consola del usuario
caso 'W':
System.out.println("Miércoles");
romper; caso 'f':
//Cuando se ingresan letras minúsculas, use la función de estructura de cambio para ejecutar la siguiente rama de mayúsculas y minúsculas con una declaración de interrupción para implementar la función de ignorar la distinción entre mayúsculas y minúsculas de la entrada de la consola del usuario
caso 'F':
System.out.println("Viernes");
romper; caso 's':
//Cuando se ingresan letras minúsculas, use la función de estructura de cambio para ejecutar la siguiente rama de mayúsculas y minúsculas con una declaración de interrupción para implementar la función de ignorar la distinción entre mayúsculas y minúsculas de la entrada de la consola del usuario
caso 'S':
System.out.print ("Dado que el sábado (sábado) y el domingo (domingo) comienzan con la letra S, debe ingresar la segunda letra para juzgar correctamente: ");
letra = entrada.siguiente();
//Determinar si la longitud de la cadena de entrada de la consola del usuario es una letra
si (letra.longitud() == 1){
//Utiliza el carácter que ocupa el primer bit de índice para permitir que el escáner reciba entrada de tipo char
semanaSegunda = letra.charAt(0);
//Utilice el operador o (||) para implementar la función de ignorar la distinción entre mayúsculas y minúsculas de la entrada de la consola del usuario
if (semanaSegunda == 'A' || semanaSegunda == 'a'){
System.out.println("Sábado");
romper;
//Utilice el operador o (||) para implementar la función de ignorar la distinción entre mayúsculas y minúsculas de la entrada de la consola del usuario
} else if (semanaSegunda == 'U' || semanaSegunda == 'u'){
System.out.println("Domingo");
romper;
//mensaje de error de la consola
} demás{
System.out.println("Error de entrada, no se puede reconocer la segunda letra del valor de la semana, ¡el programa finaliza!");
romper;
}
} demás{
//mensaje de error de la consola
System.out.println("Error de entrada, solo se puede ingresar una letra, ¡el programa finaliza!");
romper;
por defecto:
//mensaje de error de la consola
System.out.println("Error de entrada, no se puede reconocer la primera letra del valor de la semana, ¡el programa finaliza!");
romper;
}
} demás{
//mensaje de error de la consola
System.out.println("Error de entrada, solo se puede ingresar una letra, ¡el programa finaliza!");
}
}
}
[Programa 27] Título: Encuentra números primos hasta 100
clase pública Ex27 { principal vacío estático público (argumentos de cadena [])
{int suma,i; para(suma=2;suma<=100;suma++)
{para(i=2;i<=suma/2;i++)
{if(suma%i==0) descanso;
}si(i>suma/2)
System.out.println(suma+"es un número primo");
}
}
}
[Programa 28] Tema: Ordenar 10 números
1. Análisis del programa: puede utilizar el método de selección, es decir, de los últimos 9 procesos de comparación, seleccione el más pequeño para intercambiar con el primer elemento. Por analogía, la próxima vez utilice el segundo elemento para comparar con los últimos 8 elementos. intercambiarlos.
importar java.util.Arrays; importar java.util.Random; importar java.util.Scanner; clase pública Ex28 {public static void main(String[] args) { int arr[] = new int[11];
Aleatorio r=nuevo Aleatorio(); para(int i=0;i<10;i++){
arr[i]=r.nextInt(100)+1;//Obtener 10 números enteros dentro de 100
}
Arrays.sort para (arr); (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
}
System.out.print("/nPor favor ingrese un número int: ");
Escáner sc=nuevo escáner(System.in);
arr[10]=sc.nextInt();//Ingrese un valor int
Aflorrays.sort(arr); (int i=0;i<arr.length;i++){
System.out.print(arr[i]+"/t");
}
}
}
[Programa 29] Pregunta: Encuentra la suma de los elementos diagonales de una matriz de 3*3
1. Análisis del programa: utilice bucles for dobles para controlar la entrada de una matriz bidimensional y luego acumule a [i] [i] y envíelo.
clase pública Ex29 { public static void main(String[] args){ doble suma=0; int array[][]={{1,2,3},{4,5, 6},{7,7,8 }}; para(int i=0;i<3;i++) para(int j=0;j<3;j++){ si(i==j)
suma=suma + matriz[i][j];
}
System.out.println(suma);
}
}
[Programa 30] Pregunta: Hay una matriz que ha sido ordenada. Ahora ingrese un número e insértelo en la matriz de acuerdo con las reglas originales.
1. Análisis del programa: primero determine si este número es mayor que el último número y luego considere insertar el número del medio. Después de la inserción, los números después de este elemento retrocederán una posición por turno.
importar java.util.Random; clase pública ArraySort { principal vacío estático público (String [] args)
{ int temp=0; int myarr[] = nuevo int[12];
Aleatorio r=nuevo Aleatorio(); para(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];
miarr[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--)
miarr[j]=myarr[j-1];
myarr[k]=temp;
}
forSystem.out.println(""); (int k=1;k<=11;k++)
System.out.print(myarr[k]+",");
}
}
[Programa 31] Título: Genera una matriz en orden inverso.
Análisis del programa: intercambia el primero y el último.
De hecho, es más sencillo controlar variables con un bucle:
para(int k=11;k>=1;k--)
System.out.print(myarr[k]+",");
[Programa 32] Título: Tome los 4 a 7 dígitos de un número entero a comenzando desde el extremo derecho.
Análisis del programa: puedes pensarlo de esta manera:
(1) Primero, desplace a hacia la derecha 4 bits.
(2) Establezca un número en el que los 4 bits inferiores sean 1 y el resto 0. Disponible~(~0 < <4)
(3) Realice y opere los dos anteriores.
clase pública Ex32 { principal vacío estático público (cadena [] args)
{int a=0; largo b=18745678;
a=(int) Math.floor(b % Math.pow(10,7)/Math.pow(10, 3));
System.out.println(a);
}}
【Programa 33】
Pregunta: Imprima el triángulo de Yang Hui (se requiere imprimir 10 líneas como se muestra a continuación)
1. Análisis del programa:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
clase pública Ex33 { principal vacío estático público (String args []) { int i, j int a [][];
a=nuevo int[8][8]; para(i=0;i<8;i++){
a[i][i]=1;
a[i][0]=1;
para}(i=2;i<8;i++){ para(j=1;j<=i-1;j++){
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}para(i=0;i<8;i++){ para(j=0;j<i;j++){
System.out.printf(" "+a[i][j]);
}
System.out.println();
}
}
}
[Programa 34] Pregunta: Ingrese 3 números a, b, cy envíelos en orden de tamaño.
1. Análisis de programas: utilizando métodos de puntero.
clase pública Ex34 { principal vacío estático público (cadena [] argumentos)
{int []arrays = {800,56,500}; para(int i=arrays.length;--i>=0;)
{para(int j=0;j<i;j++)
{si(matrices[j]>matrices[j+1])
{int temp=arrays[j];
matrices[j]=matrices[j+1];
matrices[j+1]=temp;
}}} para (int n=0;n<arrays.length;n++)
System.out.println(matrices[n]);
}
}
[Programa 35] Título: Ingrese una matriz, intercambie el elemento más grande con el primer elemento, intercambie el elemento más pequeño con el último elemento y genere la matriz.
importar java.util.*; public class Ex35 { public static void main(String[] args) { int i, min, max, n, temp1, temp2;
System.out.println("Ingrese la longitud de la matriz:");
Teclado del escáner = nuevo escáner (System.in);
n = teclado.nextInt();
a = nuevo int[n]; para (i = 0; i < n; i++) {
System.out.print("Ingrese el "ésimo" + (i + 1) + "datos");
a[i] = teclado.nextInt();
}
// Lo anterior es la entrada de toda la matriz
máx = 0;
mín = 0;
//Establece dos banderas, comenzando con ambas apuntando al primer número
para (i = 1; i < n; i++) { si (a[i] > a[max])
max = i; // Recorre la matriz, si es mayor que a [max], asigna su subíndice de matriz a max
si (a[i] < a[min])
min = i; //Igual que el anterior, si es menor que a[min], asigna su subíndice de matriz a min
}
//El bucle for anterior encuentra los valores máximo y mínimo, max es el subíndice del valor máximo, min es el subíndice del valor mínimo
temp1 = a[0];
temp2 = a[min]; //Estas dos temperaturas son sólo para uso en intercambio
a[0] = a[máx];
a[max] = temp1; //Primero intercambia a[0] y el valor máximo a[max]
if (min != 0) { //Si el valor mínimo no es a[0], ejecuta lo siguiente
a[mín] = a[n - 1];
a[n - 1] = temp2; //Intercambia a[min] y a[n-1]
} else { //Si el valor mínimo es a[0], ejecuta lo siguiente
a[máx] = a[n - 1];
a[n - 1] = temp1;
}
for (i = 0; i < n; i++) { //Matriz de salida
System.out.print(a[i] + " ");
}}}
[Programa 36] Pregunta: Hay n números enteros, de modo que los números anteriores se mueven hacia atrás m posiciones y los últimos m números se convierten en los primeros m números [Programa 37]
Pregunta: Hay n personas sentadas en círculo y numeradas en orden. Empiece a contar desde la primera persona (contando del 1 al 3). Cualquiera que indique 3 sale del círculo y pregunta cuál es el número original de la persona que queda al final.
import java.util.scanner;
Escáner s = nuevo escáner (system.in);
arr [i] = true; // Cuando el subíndice es verdadero, significa que todavía está en el círculo
} int LeftCount = N;
if (arr [index] == true) {// Cuando está en el círculo
countnum ++;
if (countnum == 3) {// Al informar 3
countnum = 0; // Continuar contando desde cero
arr [index] = false; // Esta persona sale del círculo
Cuenta de izquierda -; // El número restante de personas se reduce en una
}
}
índice ++; // Cada vez que se informa un número, el subíndice aumenta en uno
if (index == n) {// Es un recuento circular.
índice = 0; // Establezca el índice en cero y comience de nuevo.
}
} para (int i = 0; i <n; i ++) {if (arr [i] == true) {
System.out.println(i);
}
}
}
}
【Programa 38】
Pregunta: Escriba una función para encontrar la longitud de una cadena.
import java.util.scanner;
{
Escáner s = nuevo escáner (system.in);
System.out.println("Ingrese una cadena");
Cadena mys = s.next ();
System.out.println (str_len (mys));
} public static int str_len (cadena x)
{return x.length ();
}
}
Pregunta: Escriba una función. 1+1/3+...+1/n
【Programa 39】
Tema: clasificación de cadenas.
import java.util.*;
{
ArrayList <String> list = new ArrayList <String> ();
list.add ("010101");
list.add ("010003");
list.add ("010201");
Colección.sort para (lista);
System.out.println (list.get (i));
}}}
【Programa 40】
Tema: Hay un montón de duraznos en la playa, y cinco monos tienen que dividirlos. El primer mono dividió la pila de duraznos en cinco partes. El segundo mono dividió el durazno restante en cinco partes iguales, y hubo uno más. ahí en la playa?
clase pública DG {
static int ts = 0; // número total de duraznos
int fs = 1; // Registre el número de puntos
static int hs = 5; // número de monos ...
int tsscope = 5000;
public int ft (int t) {if (t == tsscope) {
// Cancelar la recursión cuando el número de duraznos alcanza el rango de valor máximo
System.out.println ("End");
devolver 0;
} else {if ((t-1)%hs == 0 && fs <= hs) {if (fs == hs)
{
System.out.println ("La condición de división de durazno se cumple cuando el número de duraznos =" +ts +"");
}
FS+= 1;
return ft ((t-1)/5*4); // Devuelve la cantidad total que queda después de que el mono toma una pieza
}demás
{
// Las condiciones no se cumplen
fs = 1; /El número de minutos se restablece a 1
return ft (ts += 1); // Agregar +1 al número de duraznos
}}}
public static void main (string [] args) {new dg (). ft (0);
}
}