java典型示范题

/**

* 6.判断101-200之间有多少个质数,并输出所有质数。所谓质数n是指,除1和n之外,不能被其他任何整数整除。

*

*

*/

public static void main(String[] args) {

boolean b =false;

for (int i = 101; i <= 200; i++) {

for (int y = 2; y < i; y++) {

if (i % y == 0) {

b=true ;




}

}

}

if(b){

break;

}else{

System.out.pritln(i)

}

}

}

}


/**

* 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个\ 月后每个月又生一对兔子,假如兔子都不死,

* 问12个月内每个月的兔子对数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21.... 斐波拉切数列

*

*

*/

public static void main(String[] args) {

int a = 1;

int b = 1;

int c = 1;

for (int m = 1; m <= 12; m++) {

if (m == 1 || m == 2) {

System.out.println(a);

continue;

}

if (m >= 3) {

c = a + b;

a = b;

b = c;

System.out.println(c);

}

}

}

}


/**求出所有无重复数字的三位数

*

*

*/

public static void main(String[] args) {

for(int a = 1; a <= 9; a++){

for(int b = 1; b <= 9; b++){

for(int c = 1; c <= 9; c++){

if(a != b && b !=c && a != c){

int d = a*100 + b*10 + c;

System.out.println(d);

}

}

}

}

}

}


/**

* 3.有两个正整数a和b,已知a*b=2048,求a、b各为何值时,a+b的值最小值。

*

*

*/

public static void main(String[] args) {

int x =1;

    int y =1;

int s=2048;

for (int a = 1; a <= 2048; a++) {

for (int b = 1; b <= 2048; b++) {

if (a * b == 2048 && s > a+b) {

s = a+ b;

x =a;

y = b;

}

}

}

System.out.println(x);

}

}


/**2.李先生岁数的平方与他的夫人的岁数之和是1053,

* 而他的夫人的岁数的平方与他的岁数之和是873,

* 请编写程序计算李先生及其夫人的岁数各是多少。

*

*

*/

public static void main(String[] args) {

for(int l = 1; l < 1053; l++){

for(int lf =1; lf < 1053; lf++){

if(l * l + lf == 1053 && lf * lf + l ==873){

System.out.println("l:"+l+"lf:"+lf);

}

}

}

}

}


/**

* 1.打印出所有的"水仙花数",所谓"水仙花数" 是指一个三位数,其各位数字立方和等于该数本身。

* 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

*

*

*/

public static void main(String[] args) {

for (int i = 100; i <= 999; i++) {

int a = i / 100;

int b = i / 10 % 10;

int c = i % 10;

if (a * a * a + b * b * b + c * c * c == a * 100 + b * 10 + c) {

int g = a * 100 + b * 10 + c;

System.out.println(g);

}

}

}

}


/**

* 冒泡排序法

* @param args

*/

public static void main(String[] args) {

int []a ={1,2,4,5,7,9,3,10};

for (int j = 0; j < a.length; j++) {

int t = 0;

for (int i = 0; i < a.length - 1 - j; i++) {

if (a[i] < a[i + 1]) {

t = a[i];

a[i] = a[i + 1];

a[i + 1] = t;

}

}

}

for (int i = 0; i < a.length; i++) {

System.out.println(a[i]);

}

}

}


/**

* 排序

* @param args

*/

public static void main(String[] args) {

int[] a = new int[] { 12, 23, -15, 45, 32, -8, 2 };

for (int j = 0; j < a.length; j++) {

int max = -100;

int c = 0;

for (int i = j; i < a.length; i++) {

if (a[i] > max) {

max = a[i];

c = i;

}

}

int g = 0;

g = a[c];

a[c] = a[j];

a[j] = g;

}

for (int i = 0; i < a.length; i++) {

System.out.println(a[i]);

}

}

}


/**

* 给定以下程序:

Random random = new Random(); //需要点击行首的错误处理提示,选择import引包

int n = random.nextInt(35);  //生成一个[0,35)区间的随机整数

  该程序可以生成一个[0,35)区间的随机整数赋值给n

  请完成一个生成随机双色球彩票号码的程序,并将生成结果存入一个长度是7的数组

(1)随机生成6个红球,区间为[1,33], 红球之间号码不能重复,放入数组的前6个位置(下标0-5)

(2)随机生成1个篮球,区间为[1,16], 号码可以与红球重复,放入数组的第7个位置(下标6)

(3)将生成的号码显示在控制台上

解题思路:

(1) 随机一个数字,与已经随机过的数字进行比较,

(2) 数字已经有了, 本次随机的数字不要了

(3) 数字之前没有,保留这个数字

(4) 当随机够了6个数字时,红球生成完毕

(5) 再随机一个蓝球

需求分析 - 设计  - 实现(编码)

* @param args

*/

public static void main(String[] args) {

Random random = new Random();

int[] a = new int[7];

int count = 0; //表示数组中已经存放了几个数

while(true){

int n = random.nextInt(33)+1;//随机[1,33]

//n先与数组a中的前6位进行比较(查找n在数组中是否存在)

boolean b = false;  // false:不存在  true:存在

for(int i = 0; i < 6; i++){

if(a[i] == n){

b = true;

break;

}

}

if(!b){

//如果不存在,放入数组a中合适的位置的上

a[count] = n;

count++;

}else{

//如果存在,n不要了

continue;

}

//当凑齐了6个数,结束循环

if(count == 6){

break;

}

}

int m = random.nextInt(16)+1;

a[6] = m;

for(int i = 0; i < a.length; i++){

System.out.println(a[i]);

}

}

}


/**

* 斐波拉切数列

* @author ttc

*

*/

public class Test04 {

public static int f(int a) {

if(a==1||a==2){

return 1;

}else{

return f(a-2)+f(a-1);

}

}

public static void main(String[] args) {

int n = f(20);

System.out.println(n);

}

}


package com.demo.les05;

/**

* 1.编写一个名字为sort的方法,参数是一个int类型的一维数组和一个boolean值,无需返回值

  功能:当boolean值为true时,对数组进行升序排序

当boolean值为false时,对数组进行降序排序

*/

import java.util.Arrays;

public class Test01 {

public static void sort(boolean b, int[] a) {

if (b) {

Arrays.sort(a);

}else {

for (int j = 0; j < a.length; j++) {

int t = 0;

for (int i = 0; i < a.length - 1 - j; i++) {

if (a[i] < a[i + 1]) {

t = a[i];

a[i] = a[i + 1];

a[i + 1] = t;

}

}

}

}

}

public static void main(String[] args) {

int []a = {1,23,2,5,8};

sort(true,a);

for (int i = 0; i < a.length; i++) {

System.out.print(a[i]+"\t");

}

}

}


/**

* 2.利用递归解决下述问题

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

*

*

*/

public class Test02 {

public static int t(int a){

if(a==10){

return 1;

}else{

return (t(a+1)+1)*2;

}

}

public static void main(String[] args) {

int b = t(1);

System.out.println(b);

}

}


import java.util.Arrays;

import java.util.Random;

/**

* 3.已知如下代码可以生成[0,10)区间的随机整数

*

*

*

*Random random = new Random();

*int x = random.nextInt(10);

*

*请编写一个方法: getRandomInt(int a, int b),方法的作用是返回[a,b]区间内的随机整数

*

*

*/

public class Test03 {

public static int getRandomInt(int a, int b){

Random random = new Random();

int x = random.nextInt(b-a+1)+a;

return x;

}

public static void main(String[] args) {

for (int i = 0; i < 20; i++) {

System.out.println(getRandomInt(1, 4));

}

}

}


你可能感兴趣的:(java典型示范题)