/**
* 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));
}
}
}