蓝桥杯结果填空题训练部分题目代码

   

 1. 考察团组成

     某饭店招待国外考察团。按照标准,对领导是400/人,随团职员200/人,对司机50/人。

    考察团共36人,招待费结算为3600元,请问领导、职员、司机各几人。

答案是三个整数,用逗号分隔。

 

/*
 * 考察团组成
 */
import java.util.Scanner;
public class Main 
{
	public static void main(String[] args)
	{
     Scanner in=new Scanner(System.in);
	 int i,j,k,sum,max=0,a=0,b=0;
	for(i=1;i<36;i++)
	{
		for(j=1;j<36;j++)
		{
			for(k=1;k<36;k++)
			{
				if((i+j+k==36)&&(400*i+200*j+50*k==3600))
				{
					System.out.println(i+","+j+","+k);
				}
			}
		}
	}
	}

}


答案:

3,5,28

 

2. 微生物增殖

  假设有两种微生物 和 Y

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

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

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

如果X=10Y=90  呢?

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

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

     请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!

两个整数,每个1行。

  

/*
 * 微生物增值
 */
public class Main 
{
	public static void main(String[] args) 
	{
		int new_x=1,old_x=0,y=90;
		for(int time=1;time<=60;time++)
		{
			if(time%6==0)
			{
				new_x=old_x;
			}
			else if(time%6==1)
			{
				y-=new_x;
				y-=old_x;
				old_x+=new_x;
				new_x=0;
			}
			else if(time%6==3)
			{
				y-=old_x;
			}
			else if(time%6==5)
			{
				y-=old_x;
			}
			if(time%4==0)
			{
				y*=2;
			}
			if(y<=0)
			{
				break;
			}
		}
		System.out.println(y);

	}

}


答案:

0        

94371840 

 

3. 除去次方数

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

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

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

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

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

 

/*
 * 除去次方数
 */
import java.util.HashSet;
import java.util.Set;
public class Main 
{
	public static void main(String[] args) 
	{
     Set<Double> sets=new HashSet<Double>();
     sets.add(1.0);//添加第一个元素1
     int i,j=2;
     for(i=2;Math.pow(i, j)<=10000;i++)
     {
    	 for(j=2;Math.pow(i, j)<=10000;j++)
    	 {
    		 sets.add(Math.pow(i, j));
    	 }
    	 j=2;
     }
		System.out.println(10000-sets.size());
	}
	
}


 

答案:

9875

 

4. 古堡算式

    福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:

    ABCDE * ? = EDCBA

    他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”

    华生:“我猜也是!”

    于是,两人沉默了好久,还是没有算出合适的结果来。

    请你利用计算机的优势,找到破解的答案。

    把 ABCDE 所代表的数字写出来。

    答案写在“解答.txt”中,不要写在这里!

 

/*
 * 古堡算式
 */
public class Main 
{

	public static void main(String[] args) 
	{
      int a,b,c,d,e;
      int a1,b1,c1,d1,e1;
      for(int i=1234;i<=98765;i++)
      {
    	  a=i/10000;
    	  b=i/1000-a*10;
    	  c=i/100-a*100-b*10;
    	  d=i/10-a*1000-b*100-c*10;
    	  e=i%10;
    	  
    	  if(a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&b!=d&&b!=e&&c!=d&&c!=e&&d!=e)//符合这5个数互不相等的条件
    	  {
    		  int t;
    		  for(int j=0;j<10;j++)
    		  {
    			  t=i*j;
    			  e1=t/10000;
    			  d1=t/1000-e*10;
    			  c1=t/100-e*100-d*10;
    			  b1=t/10-e*1000-d*100-c*10;
    			  a1=t%10;
    			  
    			  if(a==a1&&b==b1&&c==c1&&d==d1&&e==e1)
    			  {
    				 System.out.println(a+" "+b+" "+c+" "+d+" "+e); 
    			  }
    		  }
    	  }
      }
      
	}
}


答案:

21978

 

5. 海盗比酒量

    有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。

    等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......

    请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人没倒下。

如果有多个可能的答案,请列出所有答案,每个答案占一行。

格式是:人数,人数,...

   例如,有一种可能是:20,5,4,2,0

多个答案排列顺序不重要。

答案写在“解答.txt”中,不要写在这里!

 

/*
 * 海盗比酒量
 */
public class Main 
{
	public static void main(String[] args) 
	{
     int i,j,k,m;
     double sum;
     for(i=1;i<=20;i++)
     {
    	 for(j=1;j<=20;j++)
    	 {
    		 if(j<i)
    		 for(k=1;k<=20;k++)
    		 {
    			 if(k<j)
    			 for(m=1;m<=20;m++)
    			 {
    				 if(m<k)
    				 {
    					sum=1.0/i+1.0/j+1.0/k+1.0/m; 
    					if(Math.abs(sum-1.0)<0.0000001)
    					{
    						System.out.println(i+" "+j+" "+k+" "+m);
    					}
    				 }
    			 }
    		 }
    	 }
     }
     
	}

}


 

答案:

18,9,3,2     

15,10,3,2    

20,5,4,2   

12,6,4,2     

 

6. 欧拉与鸡蛋

  大数学家欧拉在集市上遇到了本村的两个农妇,每人跨着个空篮子。她们和欧拉打招呼说两人刚刚卖完了所有的鸡蛋。

欧拉随便问:“卖了多少鸡蛋呢?”

  不料一个说:“我们两人自己卖自己的,一共卖了150个鸡蛋,虽然我们卖的鸡蛋有多有少,但刚好得了同样的钱数。你猜猜看!”

欧拉猜不出。

   另一个补充道:“如果我按她那样的价格卖,可以得到32元;如果她按我的价格卖,可以得到24.5元”。

欧拉想了想,说出了正确答案。

   我们不是数学家,懒得列出公式来分析。但计算机可以“暴力破解”,就是把所有可能情况都试验一遍,撞上为止!

请写出每人鸡蛋的数目(顺序不限),用逗号隔开。

答案写在“解答.txt”中,不要写在这里! 

 

/*
 * 欧拉与鸡蛋
 */
public class Main 
{

	public static void main(String[] args) 
	{
     int anum,bnum;
     double aprice,bprice;
     for(anum=1;anum<150;anum++)
     {
    	 bnum=150-anum;
    	 aprice=32.0/bnum;
    	 bprice=24.5/anum;
    	 if(anum*aprice==bnum*bprice)
    	 {
    		System.out.println(anum+" "+bnum); 
    	 }
     }
    
	}

}


答案:

70,80 或 80,70

 

 

7. 黄金队列

    黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子....

    黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:0.618034

   有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!

1 3 4 7 11 18 29 47 .... 称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。

如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18 ... 会发现它越来越接近于黄金分割数!

   你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。

请写出该比值。格式是:分子/分母。比如:29/47

答案写在“解答.txt”中,不要写在这里!

 

/*
 * 黄金队列
 */
import java.text.DecimalFormat;
public class Main 
{
	public static void main(String[] args)
	{ 
		DecimalFormat df=new DecimalFormat("0.000000");
		int []num=new int [10000];
		int i=1;
		while(i<10000)
		{
			double a=lucas(num,i);
			double b=lucas(num,i+1);
			double r=a/b;
			if(df.format(r).equals("0.618034"))//拿r与0.618034比较,最相似时输出
			{
				System.out.println(a+"/"+b);
				return ;
			}
			i++;
		}
		
	}
	public static int lucas(int []num,int n)
	{
		if(n==1)
		{
			return 1;
		}
		if(n==2)
		{
			return 3;
		}
		if(num[n-1]>0)
		{
			return num[n-1];
		}
		
		return (num[n-2]=lucas(num,n-1))+(num[n-3]=lucas(num,n-2));
	}

}


答案:

1364/2207

 

8. 猜生日

   今年的植树节(2012312日),小明和他的叔叔还有小伙伴们一起去植树。休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:“我说个题目,看你们谁先猜出来!”

  “把我出生的年月日连起来拼成一个8位数(月、日不足两位前补0)正好可以被今天的年、月、日整除!”

他想了想,又补充到:“再给个提示,我是6月出生的。”

根据这些信息,请你帮小明算一下,他叔叔的出生年月日。

答案写在“解答.txt”中,不要写在这里!

格式是年月日连成的8位数。

例如,如果是1948612日,就写:19480612

 

/*
 * 猜生日(该题的输出问题,连续输出尚未解决)
 */
public class Main 
{
	public static void main(String[] args) 
	{
     int year,day;
     for(int a=1;a<=2;a++)
     {
    	 for(int b=0;b<=9;b++)
    	 {
    		 for(int c=0;c<=9;c++)
    		 {
    			 for(int d=0;d<=9;d++)
    			 {
    				 for(int e=0;e<=9;e++)
    				 {
    					 for(int f=6;f<=6;f++)
    					 {
    						 for(int g=0;g<=9;g++)
    						 {
    							 for(int h=0;h<=9;h++)
    							 {
    								 if((e*10+f)<=12&&(g*10+h)<=31&&(a*1000+b*100+c*10+d)<2012&&(a*1000+b*100+c*10+d)>1900)
    									{
    										long sum;
    										sum=a*10000000+b*1000000+c*100000+d*10000+e*1000+f*100+g*10+h;
    										if(sum%2012==0&&sum%3==0&&sum%12==0)
    										{
    											System.out.print(a+" "+b+" "+c+" "+d+" "+e+" "+f+" "+g+" "+h);
    										}
    									}
    							 }
    						 }
    					 }
    				 }
    			 }
    		 }
    	 }
     }
		
	}

}


 

答案:

19550604

 

9. 棋盘上的麦子

    你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子,在第4个棋盘格放8粒麦子,......后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有64格)。

   国王以为他只是想要一袋麦子而已,哈哈大笑。

当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!

   请你借助计算机准确地计算,到底需要多少粒麦子。

答案写在“解答.txt”中,不要写在这里!

 

/*
 * 棋盘上的麦子(数据溢出)
 * 该题未解决超长整形的定义问题
 */
public class Main 
{
	public static void main(String[] args) 
	{
      long sum=0;
     int i,j;
     for(i=0;i<64;i++)
     {
    	 sum+=Math.pow(2, i);
     }
     System.out.println(sum);
	}

}


答案:

18446744073709551615

 

10. 国庆星期日

  1949年的国庆节(101日)是星期六。 

今年(2012)的国庆节是星期一。

那么,从建国到现在,有几次国庆节正好是星期日呢?

只要答案,不限手段!

可以用windows日历,windows计算器,Excel公式,。。。。。

当然,也可以编程!

不要求写出具体是哪些年,只要一个数目!

千万不要提交源代码!

答案不要写在这里,写在“解答.txt”中

 

 

/*
 * 国庆星期日
 */
public class Main 
{
	public static void main(String[] args) 
	{
      int week=6,count=0;
      int run=366%7;
      int ping=365%7;		  
      int year;			
      for(year=1950;year<2012;year++)
      {
        if((year%100!=0)&&(year%4==0))
        {
         	week+=run;
            week%=7;
            if(week==0)
            {
            	count++;
            }
        }
        else
        {
        	week+=ping;
        	week%=7;
        	if(week==0)
        	{
        		count++;
        	}
        }
      }
      System.out.println(count);
		
	}

}


答案:

9

 

11. 找素数

素数就是不能再进行等分的整数。比如:711。而9不是素数,因为它可以平分为3等份。一般认为最小的素数是2,接着是35... 

请问,第100002(十万零二)个素数是多少?

请注意:“2” 是第一素数,“3” 是第二个素数,依此类推。

不需要提交源代码,只要写出准确的结果即可!

答案写在:“解答.txt”中,不要写在这里。

 

/*
 * 找素数
 */
public class Main
{
	public static void main(String[] args) 
	{
		int n=1;
		int i=3;
		while(n<100002)
		{
			if(check(i))
			{
				n++;
				System.out.println(n+" "+i);
				i++;
			}
			else
			{
				i++;
			}
		}

	}
	public static boolean check(int n)
		{
			int k= (int) Math.sqrt(n);
			for(int i=2;i<=k;i++)
			{
				if(n%i==0)
				{
					return false;
				}
			}
			return true;
		}

}


 

答案:

1299743

 

12. 填写算式

看这个算式:

☆☆☆ ☆☆☆ ☆☆☆

如果每个五角星代表 1 ~ 9 的不同的数字。

这个算式有多少种可能的正确填写方法?

173 + 286 = 459

295 + 173 = 468

173 + 295 = 468

183 + 492 = 675

以上都是正确的填写法!

注意:

111 + 222 = 333 是错误的填写法!

因为每个数字必须是不同的! 

也就是说:1~9中的所有数字,每个必须出现且仅出现一次!

注意:

不包括数字“0”!

注意:

满足加法交换率的式子算两种不同的答案。

所以答案肯定是个偶数!

注意:

只要求计算不同的填法的数目

不要求列出所有填写法

更不要求填写源代码!

答案不要写在这里,请写在“解答.txt”中!

 

/*
 * 填写算式
 */
public class Main 
{
	public static void main(String[] args) 
	{
     int a,b,c,d,e,f,g,h,j;
     int i;
     int count=0;
     for(a=1;a<=9;a++)
     {
    	 for(b=1;b<=9;b++)
    	 {
    		 for(c=1;c<=9;c++)
    		 {
    			 for(d=1;d<=9;d++)
    			 {
    				 for(e=1;e<=9;e++)
    				 {
    					 for(f=1;f<=9;f++)
    					 {
    						 for(g=1;g<=9;g++)
    						 {
    							 for(h=1;h<=9;h++)
    							 {
    								 for(i=1;i<=9;i++)
    								 {
    									 if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i&&d!=e&&d!=f&&d!=g&&d!=h&&d!=i&&e!=f&&e!=g&&e!=h&&e!=i&&f!=g&&f!=h&&f!=i&&g!=h&&g!=i&&h!=i)
    									 {
    									  if((a*100+b*10+c)+(d*100+e*10+f)==(g*100+h*10+i))
    									  {
    										  //System.out.println(a+" "+b+" "+c+"+"+d+" "+e+" "+f+"="+g+" "+h+" "+i);
    										  count++;
    									  }
    									 }
    								 }
    							 }
    						 }
    					 }
    				 }
    			 }
    		 }
    	 }
     }
     
		System.out.println(count);
	}

}


答案:

336

 

 

 

总结:

结果填空题都是一些简单的暴破或用计算器可以算出的小题,但有几道还是有些难度的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

潇潇雨歇_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值