2015_Java_B 蓝桥杯真题(1)

2015_Java_B 蓝桥杯真题(1)

(蓝桥杯2015真题)

1.(201501).题目标题: 三角形面积

如图1所示。图中的所有小方格面积都是1。
那么,图中的三角形面积应该是多少呢?

请填写三角形的面积。不要填写任何多余内容或说明性文字。

答案:28


2.(201502)题目标题:
立方变自身

观察下面的现象,某个数字的立方,按位累加仍然等于自身。
1^3 = 1
8^3 = 512 5+1+2=8
17^3 = 4913 4+9+1+3=17

请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?

请填写该数字,不要填写任何多余的内容或说明性的文字。


//答案:6

public class Main{
   
	public static void main(String[] args){
   
		int count=0;
		for(int i=1;i<99;i++){
   //范围
			int sum=0;
			int temp=i*i*i;
			while(temp!=0){
   
				sum+=temp%10;//每位数字相加
				temp=temp/10;
			}
			if(sum==i){
   
				count++;
			}
			
		}
		System.out.println(count);
	}

}



3.(201503)题目: 三羊献瑞

观察下面的加法算式:

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

分析:
由图可知: 三:1;
答案:1085
//暴力法
public class F03_三羊献瑞 {
   
   public static void main(String[] args){
   
   	int  三=1;
   	for(int 祥=0;<=9;++){
   
   		if(!=1)for(int 瑞=0;<=9;++){
   
   			if(!=1&&!=) for(int 生=0;<=9;++){
   
   				 if(!=1&&!=&&!=)for(int 辉=0;<=9;++){
   
   					 if(!=1&&!=&&!=&&!=) for(int 羊=0;<=9;++){
   
   						 if(!=1&&!=&&!=&&!=&&!=)for(int 献=0;<=9;++){
   
   							 if(!=1&&!=&&!=&&!=&&!=&&!=)for(int 气=0;<=9;++){
   
   								 if(!=1&&!=&&!=&&!=&&!=&&!=&&!=){
   
   									 if(!=1&&!=&&!=&&!=&&!=&&!=){
   
   										 if((+)%10==&&
   												 ((+)+(+)/10)%10==&&
   												 ((+)+((+)+(+)/10)/10)%10==&&
   												 ((+1)+((+)+((+)+(+)/10)/10)/10)%10==&&
   												 ((+1)+((+)+((+)+(+)/10)/10)/10)/10==1)
   										 
   												 {
   
   											 System.out.println(*1000+*100+*10+);
   										 }
   									 } 
   								 }
   							 }
   						 }		
   				
   					 }
   				 }
   			}
   		}
   	}
   }
}

4.(201504)题目:循环节长度

两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。
比如,11/13=6=>0.846153846153… 其循环节为[846153] 共有6位。
下面的方法,可以求出循环节的长度。

请仔细阅读代码,并填写划线部分缺少的代码。

public static int f(int n, int m)
{
	n = n % m;	
	Vector v = new Vector();
	
	for(;;)
	{
		v.add(n);
		n *= 10;
		n = n % m;
		if(n==0) return 0;
		if(v.indexOf(n)>=0)  _________________________________ ;  //填空
	}
}

注意,只能填写缺少的部分,不要重复抄写已有代码。不要填写任何多余的文字。


答案:
return v.size()-v.indexOf(n)


5.(201505)题目:九数组分数

1,2,3…9 这九个数字组成一个分数,其值恰好为1/3,如何组法?

下面的程序实现了该功能,请填写划线部分缺失的代码。

public class A
{
public static void test(int[] x)
{
int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
	int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];		
	if(a*3==b) System.out.println(a + " " + b);
}
public static void f(int[] x, int k)
{
	if(k>=x.length){
		test(x);
		return;
	}
	
	for(int i=k; i<x.length; i++){
		{int t=x[k]; x[k]=x[i]; x[i]=t;}
		f(x,k+1);
		_______________________________________       // 填空
	}
}

public static void main(String[] args)
{
	int[] x = {1,2,3,4,5,6,7,8,9};		
	f(x,0);
}
}

注意,只能填写缺少的部分,不要重复抄写已有代码。不要填写任何多余的文字。

答案:(全排列   回溯)
{
   int t=x[k]; x[k]=x[i]; x[i]=t;}


6.(201506)题目:加法变乘法

我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015

比如:
1+2+3+…+1011+12+…+2728+29+…+49 = 2015
就是符合要求的答案。

请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。

注意:需要你提交的是一个整数,不要填写任何多余的内容。

答案:16
//枚举
public class Main {
   
   public static void main(String[] args){
   
   	//第一个"+"变成"*" i+i+1 --> i*(i+1)
   	for(int i=1;i<=46;i++){
   
   		//第二个"+"变成"*" j+j+1-->j*(j+1)
   		for(int j=i+2;j<=48;j++){
   
   			//i+i+1 + j+j+1+...=1225
   			//i*(i+1) + j*(j+1)+...=2015
   			//i*(i+1) + j*(j+1) -(i+i+1 + j+j+1)=2015-1225
   			if(i*(i+1) + j*(j+1) -(i+i+1  +   j+j+1)==2015-1225){
   
   				System.out.println(i);
   			}
   		}
   	}
   }

}


全部评论

相关推荐

耀孝女:就是你排序挂了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务