2017蓝桥杯寒假训练计划(一)1.19

昨天发完1.18的博客CSDN又进不去了,1.19的又只能补发了QAQ。

代码填空题:

1.递归连续数

以下程序打印出0~9的数字,请补充缺少的代码。

public class MyTest
{
	public static void f(int begin, int end)
	{
		__________________;
		System.out.println(begin);
		f(begin+1, end);	
	}
	public static void main(String[] args)
	{
		f(0,9);
	}
}
答案:

if(begin>end)return
思路:

终止递归的条件。


2.复制网站内容

本程序将网站“www.baidu.com”首页的内容复制保存在文件test.html中。写了如下代码,请完善之:

import java.net.*;
import java.io.*;
class DaSai{
	public static void main(String[] args) throws Exception {
		URL url=__________________________________;
		BufferedReader in =_________________________________;
		String inString;     
		File outfile=new File("test.html");	  
		PrintWriter out=new PrintWriter(new FileWriter(outfile));
		while ((inString=in.readLine())!=null){ 
               out.println(inString);
		}
		in.close(); 
		out.close();
     }
 }

答案:

new URL("http://www.baidu.com")
new BufferedReader(new InputStreamReader(url.openStream()))


思路:

不是很懂JAVA的这些文件、网址操作...


3.股票风险

股票交易上的投机行为往往十分危险。假设某股票行为十分怪异,每天不是涨停(上涨10%)就是跌停(下跌10%)。假设上涨和下跌的概率均等(都是50%)。再假设交易过程没有任何手续费。某人在开始的时候持有总价值为x的该股股票,那么100个交易日后,他盈利的可能性是多少呢?
以下程序通过计算机模拟了该过程,一般的输出结果在0.3左右。请填写缺失的代码。


把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

int N = 10000;
	int n = 0;
	
	for(int i=0; i<N; i++)
	{
		double value = 1000.0;	
		for(int k=0; k<100; k++)
		{
			if(Math.random() > _______)
				value = value * 1.1;
			else
				value = value * 0.9;
		}
		if(____________) n++;
	}
	
	System.out.println(1.0*n/N);

答案:

0.5
value>1000

4.基因牛的繁殖

张教授采用基因干预技术成功培养出一头母牛,三年后,这头母牛每年会生出1头母牛, 生出来的母牛三年后,又可以每年生出一头母牛。如此循环下去,请问张教授n年后有多少头母牛?
以下程序模拟了这个过程,请填写缺失的代码。

public static class Cow 
{
	private int age;
	public Cow afterYear()
	{
		age++;
		return age > 2 ? new Cow() : ___________;
	}	
	
	public static void showTotalCowNum(int n)
	{
		List<Cow> list = new ArrayList<Cow>();
		list.add(new Cow());

		for (int i = 0; i < n; i++)
		{
			int cowCount = list.size();
			for (int j = 0; j < cowCount; j++)
			{
				Cow cow = list.get(j).afterYear(); // 填空
				if (cow != null)
				{
					________________; 
					list.add(cow);
				}
			}
		}
		System.out.println(n + "年后,共有:" + list.size());		
	}
}

答案:

NULL
cow.afterYear()
思路:

由题意可知,通过for循环对每一条牛进行年龄判断且年数小于等于2的母牛则不产生新的母牛,否则增加一条牛。


结果填空题:

1. 微生物增殖 

假设有两种微生物 X Y

X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

一个新出生的X,半分钟之后吃掉1Y,并且,从此开始,每隔1分钟吃1Y

现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。

如果X=10Y=90  呢?

本题的要求就是写出这两种初始条件下,60分钟后Y的数目。

题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只 Y 就是最终导致 Y 种群灭绝的最后一根稻草!

 

两个整数,每个1行。

答案:

0        

94371840

 思路:

import java.util.Scanner;
  
public class  Main{  
    public static void main(String[] args) {  
    	Scanner input=new Scanner(System.in);
    	int x=input.nextInt();
    	int y=input.nextInt();
    	for (int i=1;i<=120;i++)//以半分钟为1,60分钟则为120
    	{
    		if (i%2==1)//第一次半分钟X吃掉一个Y,此后每一分钟吃掉一个Y,即每隔2吃掉一个Y
    			y-=x;
    		if (i%6==0)//每隔3分钟,即6,X翻一倍
    			x*=2;
    		if(i%4==0)//每隔2分钟,即4,Y翻一倍
    			y*=2;
    	}
    	if (y<0)
    		y=0;//Y值不能为负数
    	System.out.print(y);
    
    }    
}


2. 除去次方数

自然数的平方数是:1 4 9 16 25 …

自然数的立方数是:1 8 27 64 125 …

自然数的4次方数是:1 16 81 256

这些数字都可以称为次方数。

1~10000中,去掉所有的次方数,还剩下多少个数字?

 

答案:

9875

 

思路:

import java.util.Scanner;
  
public class  Main{  
    public static void main(String[] args) {  
    	int []a=new int [10001];
    	for (int i=0;i<=10000;i++)
    	{
    		a[i]=0;
    	}
    	a[1]=1;//1必定是次方数
    	//类似于桶排序
    	int i=2,j=2;
    	for (;Math.pow(j,i)<=10000;i++){
    		for(;Math.pow(j,i)<=10000;j++)
    		{
    			a[(int) Math.pow(j,i)]++;
    		}
    		j=2;
    	}
    	int num=0;
    	for (i=1;i<=10000;i++)
    	{
    		if (a[i]==0)
    			num++;
    	}
    	System.out.print(num);
    }    
}


3. 正六面体染色

正六面体用4种颜色染色。共有多少种不同的染色样式?要考虑六面体可以任意旋转、翻转。

 

答案:

240

 

思路:

组合数学中的polya定理。

用m种颜色对正六面体进行染色的不同着色方案数为:
N = 1/24*(m^6 + 3*m^4 + 12*m^3 + 8*m^2)









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值