测试类,Main类
/**
*
* @author 王雪亮
* @date 2018年7月17日
* @Description 用于测试9个控制语句程序的测试类
*/
public class Main {
public static void main(String[] args) {
System.out.println("-----1.文公鸡、母鸡、小鸡各买多少只刚好100文?-----");
BuyChicken.buyChicken();
System.out.println("\n-----2.多少天这个绳子会小于5米?-----");
CutRope.cutRope();
System.out.println("\n-----3.打印菱形-----");
Diamond.diamond3();
System.out.println("\n-----4.输入月份,求对应的Fibonacci数-----");
Fibonacci.fibonacci();
System.out.println("\n-----5.99乘法表-----");
MultipyTable.mutipyTable();
System.out.println("\n-----6.100以内的素数-----");
Prim.prim();
System.out.println("\n\n-----7.随机整型数字,直到遇到5的倍数时退出,其他数字输出-----");
RandNum.randNum();
System.out.println("\n\n-----8.循环1-100内的数,3的倍数有三的输出“过”,其他输出数字-----");
RictieNum.rictieNum();
System.out.println("\n\n-----9.计算1到某个值以内能被7或者3整除但不能同时被这两者整除的数的个数-----");
ZhengChu.zhengChu();
}
}
1.3000米长的绳子,每天减一半。问多少天这个绳子会小于5米?不考虑小数。
/**
*
* @author 王雪亮
* @date 2018年7月16日
* @Description
* ①二分法,当循环变量小于5时,跳出循环
* ②设置一个变量,用于记录循环次数
* ③变量的值,即为需要的天数
*/
public class CutRope {
public static void cutRope() {
int l=3000;
int d=0;
for(;l>=5;l=l/2) d++;
System.out.println(d);
}
}
2. 求2~100之内的素数。【素数 : 只能被1或本身整除的数】
/**
*
* @author 王雪亮
* @date 2018年7月16日
* @Description 求2~100之内的素数
*/
public class Prim {
public static void prim() {
boolean flag;
for(int i=2;i<100;i++)
{
flag=false;
for(int j=2;j<=Math.sqrt(i);j++)
{if(i%j==0) {flag=true;break;}}
if(flag==false) System.out.print(i+" ");
else continue;
}
}
}
3. 报数游戏:循环1-100内的数,3的倍数有三的输出“过”,其他输出数字
/**
*
* @author 王雪亮
* @date 2018年7月16日
* @Description
* 报数游戏:循环1-100内的数,3的倍数有三的输出“过”,其他输出数字
*/
public class RictieNum {
public static void rictieNum() {
int i;
for(i=1;i<=100;i++)
{
int a=i%10;
int b=i/10;
if(i%3==0)
System.out.print("过\t");
else if(a==3||b==3)
System.out.print("过\t");
else
System.out.print(i+"\t");
if(i%10==0) System.out.println();
}
}
}
4. 随机整型数字,直到遇到5的倍数时退出,其他数字输出
import java.util.Random;
/**
*
* @author 王雪亮
* @date 2018年7月16日
* @Description 随机整型数字,直到遇到5的倍数时退出,其他数字输出
*/
public class RandNum {
public static void randNum() {
Random r=new Random();
int i=0;
while(r.nextInt()%10!=5)
{
i++;
System.out.print(r.nextInt()%10+" ");
if(i%10==0) System.out.println();
}
}
}
5. 计算1到某个值以内能被7或者3整除但不能同时被这两者整除的数的个数
import java.util.Scanner;
/**
*
* @author 王雪亮
* @date 2018年7月16日
* @Description
* 计算1到某个值以内能被7或者3整除但不能同时被这两者整除的数的个数
*/
public class ZhengChu {
public static void zhengChu() {
int n;
System.out.println("请输入一个大于1的数:");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
if(n<=1) System.out.println("输入错误");
else {
for(int i=1;i<n;i++)
{
if(i%7==0&&i%3==0) continue;
else if(i%7==0) System.out.print(i+" ");
else if(i%3==0) System.out.print(i+" ");
else continue;
}
}
}
}
6. 打印99乘法表;
/**
*
* @author 王雪亮
* @date 2018年7月16日
* @Description 打印99乘法表
*/
public class MultipyTable {
public static void mutipyTable() {
int i,j;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
System.out.print(i+"*"+j+"="+i*j);
System.out.print("\t");
}
System.out.println();
}
}
}
7. 调用方法的形式打印以下图形:
01.
*
***
*****
*******
*****
***
*
02.
*******
*****
***
*
***
*****
*******
03.
A
BBB
CCCCC
DDDDDDD
CCCCC
BBB
A
/**
*
* @author 王雪亮
* @date 2018年7月16日
* @Description
* ①菱形可拆分成上三角和下三角,完成一个上三角,下三角同理即可得到
* ②完成上三角
* (1)用变量i记录行号
* (2)用变量j记录空格,j和i的关系为:j=上三角行数-i
* (3)用变量k记录*的个数,k和i的关系为:k=2*i-1
* ③完成下三角
*
* #通过数字和字母'A',打印A~Z
*/
public class Diamond {
/*
*
***
*****
*******
*****
***
*
*/
static void diamond1()
{
System.out.println("diamond1:");
//打印上三角
for(int i=1;i<5;i++)//变量i记录行号
{
for(int j=4-i;j>0;j--)//变量j记录空格,j和i的关系为:j=上三角行数-i
System.out.print(" ");
for(int k=2*i-1;k>0;k--)//变量k记录*的个数,k和i的关系为:k=2*i-1
System.out.print("*");
System.out.println();//一行结束,换行
}
//打印下三角
for(int i=3;i>0;i--)
{
for(int j=4-i;j>0;j--)
System.out.print(" ");
for(int k=2*i-1;k>0;k--)
System.out.print("*");
System.out.println();
}
}
/*
*******
*****
***
*
***
*****
*******
*/
static void diamond2() {
System.out.println("diamond2:");
for(int i=3;i>0;i--)
{
for(int j=4-i;j>0;j--)
System.out.print(" ");
for(int k=2*i-1;k>0;k--)
System.out.print("*");
System.out.println();
}
//打印上三角
for(int i=2;i<5;i++)
{
for(int j=4-i;j>0;j--)
System.out.print(" ");
for(int k=2*i-1;k>0;k--)
System.out.print("*");
System.out.println();
}
}
/*
A
BBB
CCCCC
DDDDDDD
CCCCC
BBB
A
*/
static void diamond3()
{
System.out.println("diamond3:");
//打印上三角
for(int i=1;i<5;i++)
{
for(int j=4-i;j>0;j--)
System.out.print(" ");
for(int k=2*i-1;k>0;k--)
{
int a='A'+i-1;
System.out.print((char)a);
}
System.out.println();
}
//打印下三角
for(int i=3;i>0;i--)
{
for(int j=4-i;j>0;j--)
System.out.print(" ");
for(int k=2*i-1;k>0;k--)
{
int a='A'+i-1;
System.out.print((char)a);
}
System.out.println();
}
}
}
8. 兔子问题:一对兔子每个月可以生一对小兔子,以一对作为一个单位,那么从第一个月开始,每个月总共的兔子数量就是1,1,2,3,5,8,13...,编写代码,实现输入人员月份都可以获取该月份的时候总兔子数;(斐波那契数列)
import java.util.Scanner;
/**
*
* @author 王雪亮
* @date 2018年7月16日
* @Description
* ①构造Fibonacci数列,存放在数组a中,下标为月份-1
* ②通过月份即可求出对应的Fibonacci数
*/
public class Fibonacci {
public static void fibonacci() {
System.out.println("请输入月份:");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int a[]=new int[100];
a[0]=1;//构造Fibonacci数列
a[1]=1;
for(int i=2;i<100;i++) {
a[i]=a[i-1]+a[i-2];
}
//通过月份即求对应的Fibonacci数
System.out.println("该月兔子总数为:"+a[n-1]);
}
}
9. 公积5文一只,母鸡3文一只,小鸡3只一文,用100文买100只鸡,其中公鸡、母鸡、小鸡都必须要有,文公鸡、母鸡、小鸡各买多少只刚好100文?
扫描二维码关注公众号,回复:
2216607 查看本文章
/**
*
* @author 王雪亮
* @date 2018年7月16日
* @Description
* ①穷举公鸡,母鸡的个数,其余为小鸡的个数
* ②if语句判断公鸡,母鸡,小鸡之间满足的关系
* ③若满足if条件,输出,否则执行下一次循环
*/
public class BuyChicken {
public static void buyChicken() {
int x,y,z;
for(x=1;x<=24;x++)//公鸡最多24只
{
for(y=1;y<=98;y++)//母鸡最多98只
{
z=100-x-y;//剩余为小鸡就的个数
//价格为100文,且小鸡个数为3的倍数时满足条件
if(5*x+3*y+(100-x-y)/3==100&&(100-x-y)%3==0)
System.out.println("公鸡:"+x+",母鸡:"+y+"小鸡:"+z);
}
}
}
}