小习题合集

(1).用辗转相除法求两个数的最大公约数的步骤如下:
1.先用小的一个数除大的一个数,得第一个余数;
2.再用第一个余数除小的一个数,得第二个余数;
2.又用第二个余数除第一个余数,得第三个余数;
4.这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
Java代码如下:

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
	System.out.println("请输入两个整数:");
	Scanner in=new Scanner(System.in);
	int n1=in.nextInt();
	int n2=in.nextInt();
	int dividend = (n1>n2)?n1:n2;
	int divisor = (n1>n2)?n2:n1;
	int remainder = divisor;
	while (remainder>0) {
		divisor = remainder;
		remainder = dividend%divisor;
		dividend=divisor;
	}
	System.out.println(n1+"和"+n2+"的最大公约数是"+divisor);
	in.close();
}    
}

(2).输出1-100之间所有的素数。

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
	int i;
    for(int num=2;num<=100;num++) {
    	i=2;
    	while(num%i!=0) {
    		i++;
    	}
    	if(i==num) {
    		System.out.println(num);
    	}
    }
	
   }  

}

(3).编写一个程序,输入一组整数,以-1结束,比较并输出其中的最大值和最小值

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
	int max;//用来保存最大数
	int min;//用来保存最小数
	int num;//用来保存从键盘上输入的那个数
	Scanner in =new Scanner(System.in);
	System.out.println("请输入整数:");
	max=min=num=in.nextInt();//暂时把值设置为第一次输入的值
	while(num!=-1) {
		if(num<min) {
			min=num;//如果录进来的值比储存值还小  就替换掉
		}
		if(num>max) {
			max=num;//如果录进来的值比储存值大 也替换掉
		}
		System.out.println("请继续输入 输入-1结束:");
		num=in.nextInt();
	}
	System.out.println("最大值"+max+",最小值"+min);
	
   }  

}

(4)写一个程序,读入20个10以内的正整数,输出每个整数出现的次数

import java.util.Scanner;

public class Test1 {
	
public static void main(String[] args) {
	int[] counts = new int[20];//定义一个数组
	Scanner in = new Scanner(System.in);//输入数字
	for(int i = 0; i < 20; i++)
	{   
		
		counts[i] = in.nextInt(); //输入0到9之间的整数
		System.out.print(counts[i] + " ");//输出打印一下数字
	}
	System.out.println();	
	int [] number = check(counts);
	int [] newnumber = new int[10];
	int length = 9;
	for(int k = 0; k < 10;k++)
	{
		newnumber[k] = number[length];
		length--;
	}
	String output = "";
	for(int j = 0 ; j < 10; j++)
	{
		if(newnumber[j] != 0)
			output += j + " appear " + newnumber[j] + ((newnumber[j] == 1) ? " time\n" : " times\n");
	}
	System.out.println(output);
}
//统计每个数出现的次数
public static int[] check(int[] counts){
	int[] number = new int[10];
	for(int i = 0; i < 20; i++)
		number[9 - counts[i]]++;
	return number;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值