Java练手题一之基本语法

1.哥德巴赫猜想:任何一个大于2的偶数都是两个素数之和。例如:4=2+2,10=7+3.。。

import java.io.*;
public class my {
   
	public static void main(String args[])
    {
       String s="";
       int num;
       int a=2;
       int b;
       System.out.println("输入任意大于2的偶数: ");
       try{
    	   BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
    	   s=in.readLine();
       }
       catch(IOException e){}
       num=Integer.parseInt(s);
       for(;a<num;a++){
    	   if(iszhishu(a)){
    		   b=num-a;
    		   if(iszhishu(b)) {
    			   System.out.println(num+"="+a+"+"+b);
    			  // break;//可能有多个输出结果
    		   }
    	   }
       }
    }
	public static boolean iszhishu(int i){
		for(int j=2;j<i;j++){
			if(i%j==0) return false;
		}
		return true;
	}
}

2.产生随机的20个两位数,将它们显示出来,并按照从小到大的顺序排列,显示排序结果。

 

import java.io.*;
public class my {
   
	public static void main(String args[])
    {
		int[] m=new int[20];
		for(int i=0;i<20;i++){
			m[i]=(int)(Math.random()*89)+10;//随机数产生的公式
		}
		for(int i=0;i<20;i++)
			System.out.print(m[i]+" ");
		System.out.print("\n");
		int[] n=new int[100];//采用计数排序,开销了100个存储单元,有点多
		for(int j=0;j<100;j++)
			n[j]=0;
		for(int j=0;j<20;j++)
			n[m[j]]++;
		for(int j=10,i=0;j<=99&&(i<20);j++){
			while(n[j]!=0){
				m[i]=j;
				i++;
				n[j]--;
			}
		}
		for(int i=0;i<20;i++)
			System.out.print(m[i]+" ");
		System.out.println();
		
    }
}

3.幼儿园有二十个小朋友,坐成一个圈,玩数学游戏。进行编号从1到20,从第一个小朋友开始报数,报到5时,这个小朋友退出圈外且不再参加报数。别的小朋友继续,直到所有小朋友都退出。

import java.io.*;
public class my {
   
	public static void main(String args[])
    {
		int[] m=new int[21];//有n个小朋友就把数组声明为n+1
		for(int i=1;i<21;i++)
			m[i]=1;
		for(int i=1,j=0;i<=21;){
	        if(j<5&&(m[i]==1)){
				j++;
				if(j==5){//每个5即推出一个,可能是别的数字,这里也可以设置
					m[i]=0;
					j=0;
					System.out.print(i+" ");
				}
				i++;
			}
	        else if(j<5&&(m[i]==0))i++;
	        if(i==21&&(check(m))) i=1;
		}
    }
	public static boolean check(int[] m){
		for(int i=1;i<21;i++)
		{
			if(m[i]==1)return true;
		}
		return false;
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大胖5566

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

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

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

打赏作者

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

抵扣说明:

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

余额充值