Java------控制语句练习

测试类,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文?

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


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

靓仔很忙i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值