Java语法基础五(例题)

1、计算输入数据的阶乘值


首先,要先对题目进行分析,计算输入数据的阶乘值,怎么输入?怎么计算?数据的合法性?这就是问题。

最开始扫描录入数据的方法是Scanner  sc=new Scanner(System.in);  int i=sc.nextInt();

java中的import java.util.Scanner; 是一个类,可以用这个类来从控制台写入数据(可以是int,string等类型) 

还有就是大家可以调用System.out.println(Integer.MAX_VALUE);System.out.println(Integer.MIN_VALUE);来确定int存储数据的范围为-2147483648到2147483647,阶乘如果超过12,就会在Console中显现的结果完全不同,所以用while循环来确定输入数据的范围;

最后就是计算,可以用一个for循环进行输出结果

package com.yan3;

import java.util.Scanner;

public class Test2 {

	public static void main(String[] args) {
		// 计算输入数据的阶乘值
		System.out.println("请输入整数:");
		Scanner sc = new Scanner(System.in);
		int kk = 0;
		while (true) {
			// 输入的整数值应该是一个正整数
			kk = sc.nextInt();
			if (kk > 0 && kk <= 12)
				break;
			else
				System.out.println("您输入的值为" + kk + ",需要输入的是一个小于等于12的正整数!");
		}

		int res = 1;
		for (int k = 1; k <= kk; k++) {
			res *= k;
		}
		System.out.println(kk + "! =" + res);
		sc.close();

	}

}

2、互换两个数的值


互换两个数据的值,就是先随机输入两个数据,可以用i=i+j;    j=i-j;//实际上j=(i+j)-j=i   i=i-j//实际上i=(i+j)-i=j,这里有很多方法,看自己的喜好去做

package com.yan3;

import java.util.Scanner;

public class Test3 {

	public static void main(String[] args) {
		// 互换两个数的值(不允许使用中间变量)
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个整数:");
		int i = sc.nextInt();
		System.out.println("请输入第二个整数:");
		int j = sc.nextInt();
		System.out.println("您输入的数据为:(" + i + "," + j + "),更换后为(");
//		i = i + j;
//		j = i - j;// 实际j=(i+j)-j=i
//		i = i - j;// 实际i=(i+j)-i=j

		i = i ^ j;// a = 011^101 = 110
		j = i ^ j;// b = 110^101 = 011
		i = i ^ j;// a = 110^011 = 101
		System.out.println(i + "," + j + ")");
		sc.close();

//		Scanner sc = new Scanner(System.in);
//		System.out.println("请输入第一个整数:");
//		int a = sc.nextInt();
//		System.out.println("请输入第二个整数:");
//		int b = sc.nextInt();
//		System.out.println("您输入的数据为:(" + a + "," + b + "),更换后为(");
//		int tmp = a;
//		a = b;
//		b = tmp;
//		System.out.println(a + "," + b + ")");
//		sc.close();

	}

}

3、输出三个数中的最大值和最小值


这里求三个数中的最大值和最小值,可以用三目运算符 x?y:z 去做,也可以用数据库Math.max(k1,k2);  Math.min(k1,k2);去做,也可以用int max=Integer.MIN_VALUE;int min=Integer.MAX_VALUE;进行比较计算

package com.yan3;

public class Test4 {

	public static void main(String[] args) {
		// 3、输出三个数中的最大值和最小值 第一种写法
//		Scanner sc = new Scanner(System.in);
//		System.out.println("请输入第一个数:");
//		double i = sc.nextDouble();
//		System.out.println("请输入第二个数:");
//		double j = sc.nextDouble();
//		System.out.println("请输入第三个数:");
//		double k = sc.nextDouble();
//
//		double max = i > j ? i : j;
//		max = max > k ? max : k;
//		System.out.println("三个数中最大值为" + max);
//
//		double min = i < j ? i : j;
//		min = min < k ? min : k;
//		System.out.println("三个数中最小值为" + min);

		// 输出三个数中的最大值和最小值 第二种写法
//		int k1 = 89;
//		int k2 = 63;
//		int k3 = 999;
//
//		int max = Integer.MIN_VALUE;
//		int min = Integer.MAX_VALUE;
//
//		if (max < k1)
//			max = k1;
//		if (max < k2)
//			max = k2;
//		if (max < k3)
//			max = k3;
//
//		if (min > k1)
//			min = k1;
//		if (min > k2)
//			min = k2;
//		if (min > k3)
//			min = k3;
//		System.out.println("最大值为" + max + ",最小值为" + min);

		// 输出三个数中的最大值和最小值 第三种写法
		int k1 = 56;
		int k2 = 23;
		int k3 = 32;

		// Math数学库
		int max = Math.max(k1, k2);
		max = Math.max(max, k3);

		int min = Math.min(k1, k2);
		min = Math.min(min, k3);

		System.out.println("最大值为" + max + ",最小值为" + min);
	}

}

4、输出1到100的奇数,每行输出6个


这道例题很简单,只需要输入的数据求余即可

package com.yan3;

public class Test5 {

	public static void main(String[] args) {
		// 4、输出1-100的奇数(每行输出6个) 第一种写法
		int count = 0;
		int i = 0;
		while (++i < 101) {
			if (i % 2 == 1) {
				count++;
				System.out.print(i + "\t");
			}
			if (count % 6 == 0)
				System.out.println("\n");
		}

		// 4、输出1-100的奇数(每行输出6个) 第二种写法
//		int cc = 0;
//		for (int i = 1; i < 101; i++) {
			System.out.println();输出完成自动换行 
			System.out.print();输出完成不会自动换行
//			if (i % 2 != 0) {
//				System.out.print(i + "\t");
//				cc++;
//				if (cc % 6 == 0)
//					System.out.println();
//
//			}
//		}

	}

}

5、1到100可以被3整除的数,每行输出6个(附加题:1到1000可以被7整除的数,每行输出9个)


这道题和上一题很类似,也是求余的一种用法,还涉及到了循环语句的计算

package com.yan3;

public class Test8 {

	public static void main(String[] args) {
		// 7、1~100可以被3整除的数
		// while
//		int i = 1;
//		int count = 0;
//		while (++i < 101) {
//			if (i % 3 == 0) {
//				System.out.println(i+"\t");
//				count++;
//			
//		        if(count%6==0)
//		              System.out.println();
//		    }
//		}
//		System.out.println("\n"+"1~100可以被3整除的数共有" + count + "个");

		// do/while
//		int i = 1;
//		int count = 0;
//		do {
//			if (i % 3 == 0) {
//				System.out.print(i + "\t");
//				count++;
//			    if (count % 6 == 0)
//				    System.out.println();
//	         }
//		} while (++i < 101);
//		System.out.println("\n" + "1~100可以被3整除的数共有 " + count + " 个");

		// for
//		int count = 0;
//		for (int i = 1; i < 101; i++) {
//			if (i % 3 == 0) {
//				System.out.print(i + "\t");
//				count++;
//			
//			    if (count % 6 == 0)
//				   System.out.println();
//		     }
//		}
//		System.out.println("\n" + "1~100可以被3整除的数共有 " + count + " 个");

		// 1~1000可以被7整除的数,每行9个
		int i = 1;
		int count = 0;
		while (++i < 1001) {
			if (i % 7 == 0) {
				System.out.print(i + "\t");
				count++;

				if (count % 9 == 0)
					System.out.println();
			}

		}
		System.out.println("\n" + "1~1000可以被7整除的数为 " + count + " 个");

	}

}

6、求100以内所有能被3整除但不能被5整除的个数,每行输出6个


package com.yan3;

public class Test9 {

	public static void main(String[] args) {
		// 8、求 100 以内所有能被 3 整除但不能被 5 整除的个数
		int i = 1;
		int count = 0;

		// while
//		while (++i < 101) {
//			if (i % 3 == 0 && i % 5 != 0) {
//				System.out.print(i + "\t");
//				count++;
//
//				if (count % 6 == 0)
//					System.out.println();
//			}
//		}

		// for
//		for (i = 1; i < 101; i++) {
//			if (i % 3 == 0 && i % 5 != 0) {
//				System.out.print(i + "\t");
//				count++;
//				if (count % 6 == 0)
//					System.out.println();
//			}
//		}

		// do/while
		do {
			if (i % 3 == 0 && i % 5 != 0) {
				System.out.print(i + "\t");
				count++;
				if (count % 6 == 0)
					System.out.println();
			}
		} while (++i < 101);
		System.out.println("\n" + "100以内所有能被 3 整除但不能被 5 整除的个数为 " + count + "个");

	}
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值