1.编写程序输出200以内所有奇数,要求每行输出10个数字:
源代码:Odd.java
public class Odd{
public static void main(String[]args){
int m = 0;
System.out.println("200以内的奇数依次为:\n");
for(int i = 0; i < 200; i++){
if (i % 2 != 0)//判断是否为奇数
{
System.out.print(i+"\t");
m++;
}
if(m % 10 == 0)//实现10个数字换行
System.out.println();
}
}
}
运行结果:
有一个问题:为什么行间距这么大呢?
2.使用字母打印正三角形
思想:是有通过键盘输入用户想打印的三角形行数,需要使用Scanner类;要求输出字母,需要强制类型转换,将字母的ASCII值与数字相加后在转为char类型
源代码:RegularTriangle.java
import java.util.Scanner;
public class RegularTriangle{
public static void main(String[] args)
{
System.out.print("请输入该三角形的行数:\n");
Scanner input = new Scanner(System.in);
int num = input.nextInt();//由键盘输入数字
for(int i = 0; i < num; i++)
{
for(int j = 0; j < num-i+1; j++)//打印三角形每行该有的空格
System.out.print(" ");
for(int j = 0; j < 2*i+1; j++)//用字母打印三角形
System.out.print((char)('A'+i)+" ");
System.out.println(" ");
}
}
}
运行结果:
3.输出三角形状的乘法九九表
思想:通过双重循环实现
源代码:MultiplicationTable.java
public class MultiplicationTable{
public static void main(String[] args){
for(int i=1;i<=9;i++)
for (int j=1;j<=i;j++)
{
int m=i*j;
System.out.print(i+"×"+j+"="+m+" ");
if(i==j)
System.out.println();
}
}
}
运行结果:
4.输入一个五位数求和
源代码:Nums.java
//输入五位整数,输出各个位数之和
public class Nums
{
public static void main(String[]args){
int m,i,sum = 0;//n为所需求和的五位数
int n = 12345,q = 10000;
for(i = 5; i > 0; i--){
m = n / q;
sum = m + sum;
n = n % q;
q = q / 10;
}
System.out.println("该五位数各个位上的和为"+sum);
}
}
/*
public class Nums
{
public static void main(String []args){
int data = 12345;
int i,sum = 0,temp,p = 10;
for(i = 5; i > 0; i--){ //i=5 4
temp = data % p; // temp=5
sum += temp; //sum=5
data /= p; // data=1234
}
System.out.println("该五位数各个位上的和为"+sum);
}
} */
运行结果:
5.猜数游戏
思想:该实验需要生成随机数[0,100),从博客园搜索到java中随机数的用法,大致有三种:
- 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数
final long l = System.currentTimeMillis();
- 获取int类型的整数,上面结果需要转行成int类型即可。
final long l = System.currentTimeMillis();
final int i = (int)( l % 100 );
- 通过Math.random()返回一个[0,1)的double值,使用方法如下:
final double d = Math.random();
- 获取int类型的整数,上面结果需要转行成int类型即可。
final double d = Math.random();
final int i = (int)(d*100);
//或者可以直接如下;
final int i = (int)(Math.random()*100);
- 通过Random类来产生一个随机数,创建Random对象,通过Random对象获取随机数
import java.util.Random;
Random random = new Random();//默认构造方法
Random random = new Random(1000);//制定种子数字
int i = random.nextInt(100);
源程序:Ran.java
import java.util.Random;
import java.util.Scanner;
public class Ran{
public static void main(String[] args)
{
System.out.println("这是一个猜字游戏!");
//使用Math.random()方法
//int num = (int)(Math.random()*100);
/* 使用Random类
Random random = new Random();
int num = random.nextInt(100); */
// System.currentTimeMillis() long 型
final int num = (int)( System.currentTimeMillis() % 100 );
Scanner input = new Scanner(System.in);
int guessNum = input.nextInt();
if( guessNum > 100 || num < 0 )
{
System.out.println("你所输入的数字不在范围内!");
}
while( guessNum != num ){
if( guessNum > num ){
System.out.println("你的数字猜大了!");
}else if( guessNum < num ){
System.out.println("你的数字猜小了!");
}guessNum = input.nextInt();
//定义一个变量存放输入的数字与随机数的差值
int d = Math.abs( guessNum - num );
System.out.println("你所猜的数字与随机数之间的差为"+d);
}
System.out.println("恭喜通关!");
}
}
运行结果:
当然猜数游戏不需要加这么明显的提示啦!我只是想试着用一下求绝对值!
6.冒泡排序和选择排序
思想:都是双重循环,冒泡法按趟比较,将相邻两数的大数往后换,直到将最大的数字调到最后,再开始第二趟排序,等等;选择排序定下一个哨兵,从第一个位置开始,依次和后面的数字比较,将较小数移到第一个位置,接着给第二位置选择第二小的数字。这两者的区别在于循环条件的不同,需多加区分!
源代码:Sort.java
import java.util.Arrays;
public class Sort
{
//冒泡排序
public static void bubbleSort(int[]arr)
{
System.out.println("冒泡排序分步序列:");
for(int i = 0 ; i < arr.length-1; i++)
{
for(int j = 0 ; j < arr.length-1-i; j++)
{
if(arr[j] > arr[j+1])
{
printArr(arr);
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
//选择排序
public static void selectSort(int[]arr)
{
System.out.println("选择排序分步序列:");
for(int i = 0 ; i < arr.length-1 ; i++)
{
for(int j = i + 1 ; j < arr.length ; j++)
{
if(arr[i] > arr[j])
{
printArr(arr);
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
//输出数组
public static void printArr(int[]arr)
{
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
}
//主方法
public static void main(String[]args1)
{
//定义一个数组
int[]arr = {3,4,2,7,1,9};
bubbleSort(arr);
printArr(arr);
int[]a={3,6,1,3,0,4,3};
selectSort(a);
printArr(a);
}
}
运行结果:
实验思考:本次实验的算法曾经都用过,新的知识就是java中Scanner,Random类的使用。