2020/07/13-Ejercicios de estructura de bucle Java (imprima el triángulo Yang Hui, imprima todos los números impares compuestos por 0-7, no hay repetición de números en cada dígito)
1. Imprima el triángulo Yang Hui (se requieren 10 líneas para imprimir como se muestra a continuación)
- 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
- Ideas:
- En primer lugar, el primer número de cada fila es 1
- La ley de cada línea de números es: 1; i / 1; i (i-1) / 1 2; (i-1) (i-2) / 2 3; ... int i = 0
- Importante: Analice la relación entre las características de cada fila de números e i, y también preste atención al valor inicial de i se establece en 0
- Por ejemplo, para la fila 3: 1, 2, 1
- Ordenanza v = 1; a = i,
- i = 2 representa la tercera fila, v = v * aa–; salida: v = v / j, donde int j = 0, j = 0 está definido, lo que significa el primer número en la primera columna, j = 1 significa una columna El segundo número en
/**
*/
public class test15 {
public static void main(String[] args) {
int num = 5;
for (int i = 0; i < num; i++) {
int v = 1;
int a = i;
for (int j = 0; j <= i; j++) {
int b = j;
if(b==0)
System.out.print(1+" ");
else {
System.out.print((v = v / j) + " ");
}
v=v*a;
a--;
}
System.out.println();
}
}
}
2. Encuentra el número impar de 0 a 7.
análisis de idea:
-
Solo números impares cuando el lugar de las unidades es 1, 3, 5, 7
-
Calcule los números impares de 2 dígitos, 3 dígitos, 4 dígitos ..., por ejemplo:
-
Con 2 dígitos, hay 6 * 4 posibilidades. Debido a que el dígito más alto (primer dígito) no puede ser 0, es 7-1 = 6 posibilidades
-
Con 3 dígitos, hay 6 6 4 tipos, el primer dígito y el dígito de las unidades son un número, y el segundo dígito es 8-2 = 6 tipos.
-
4 dígitos, hay 6 6 5 * 4 posibilidades
-
Por lo tanto, debe escribirse por separado para 2 dígitos, y los dígitos después de 2 se pueden escribir de acuerdo con la ley de circulación
* /
public class test16 {
public static void main(String[] args) {
int total = 4;
for (int i = 2; i <=8 ; i++) {
//外层循环定义位数
int sum = 4;
for (int j = 1; j < i; j++) {
if (j==1){
sum=sum*6;
}else {
sum=sum*(8-j);
}
}
total+=sum;
}
System.out.println(total);
}
}
3. Encuentra la diferencia positiva entre números primos y no primos dentro de 1000
- Ideas:
- 2 es un número primo, 1 no es un número primo ni un número compuesto
- Número primo + número compuesto + 1 = todos los números
- Primero encuentre los números primos, luego use la suma: la suma de los números primos = la suma de los números no primos
public class khzy2 {
public static void main(String[] args) {
int j = 0;
int sum = 2;
int num = 0;
int s = 0;
for (int i = 1; i <1000 ; i++) {
num=num+i;
}
System.out.println(num);
for (int i = 2; i <1000 ; i++) {
for ( j = 2; j <i ; j++) {
s =i%j;
if (s==0){
break;
}
}
if (s!=0){
sum = sum + i;
}
}
System.out.println("质数:"+sum);
int n = num - sum;
int k = n - sum;
System.out.println(k);
}
}
4. Genere aleatoriamente 6 números aleatorios entre 1 y 33, y un número aleatorio entre 1 y 15. Estos 7 números no se pueden repetir.
- Ideas:
- 1. int n = (int) (Math.random () 10); cuando se genera es un número aleatorio entre 0-9, por lo que 34 generará un número aleatorio entre 0-33
- 2. Dado que cada número no se puede repetir, agregue una declaración || para asegurarse de que cada dos números no sean iguales entre sí.
- 3. Si no es igual, imprima 7. Si es igual, use la instrucción contiune para salir de este ciclo y continuar con el siguiente ciclo.
public class khzy1 {
public static void main(String[] args) {
int flag = 0;
do {
int num1 = (int) (Math.random() * 34);
int num2 = (int) (Math.random() * 34);
int num3 = (int) (Math.random() * 34);
int num4 = (int) (Math.random() * 34);
int num5 = (int) (Math.random() * 34);
int num6 = (int) (Math.random() * 34);
int num7 = (int) (Math.random() * 16);
if ((num1!=num2)||(num1!=num3)||(num1!=num4)||(num1!=num5)||(num1!=num6)
||(num1!=num7)||(num2!=num3)||(num4!=num2)||(num5!=num2)||(num6!=num2)
||(num7!=num2)||(num4!=num3)||(num5!=num3)||(num6!=num3)||(num7!=num3)||
(num4!=num5)||(num4!=num6)||(num4!=num7)||(num4!=num2)||(num5!=num6)||(num5!=num7)||(num6!=num7)
){
flag = 1;
System.out.println(num1+" "+num2+" "+num3+" "+num4+" "+num5+" "+num6+" "+num7+" ");
};
}while (flag == 0);
}
}