第四届(13年)蓝桥杯java B组决赛真题

1、标题:猜灯谜(填空)

    A 村的元宵节灯会上有一迷题:

        请猜谜 * 请猜谜 = 请边赏灯边猜
    
    小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字。
    
    请你用计算机按小明的思路算一下,然后提交“请猜谜”三个字所代表的整数即可。

    请严格按照格式,通过浏览器提交答案。
    注意:只提交一个3位的整数,不要写其它附加内容,比如:说明性的文字。

 1 import java.util.Scanner;
 2 //猜灯谜
 3 public class Main{
 4     public static boolean f(int a[]){//a与b的关系
 5         if(a[1]==a[4]){
 6             if(a[0]!=a[1]&&a[0]!=a[2]&&a[0]!=a[3]&&a[0]!=a[5]&&a[1]!=a[2]&&a[1]!=a[3]&&a[1]!=a[5]&&a[2]!=a[3]&&a[2]!=a[5]&&a[3]!=a[4]&&a[3]!=a[5])
 7             return true;
 8         }
 9         return false;
10     }
11     
12     public static void main(String args[]){
13         int a,b,c[]=new int[6];
14         for(int i=1;i<=9;i++)
15             for(int j=0;j<=9;j++)
16                 for(int k=0;k<=9;k++)
17                     if(i!=j&&i!=k&&j!=k){//数a为三位不同数字组成的一个三位数
18                         a=(i*10+j)*10+k;//“请猜谜”代表的数
19                         b=a*a;//"请边赏灯边猜"代表的数字
20                         if(b>100000&&b<1000000){//若b为6位数
21                             for(int l=5;l>=0;l--){
22                                 c[l]=b%10;
23                                 b=b/10;
24                             }
25                             if(f(c)==true&&c[0]==a/100&&c[5]==(a/10)%10)System.out.println(a);
26                         }
27                     }
28     }
29 }
法一猜灯谜

答案:897

 1 public class Main {
 2     public static void main(String args[]) {
 3         for (int a = 1; a <= 9; a++)
 4             for (int b = 0; b <= 9; b++) {
 5                 if (a == b)
 6                     continue;
 7                 for(int c=0;c<=9;c++){
 8                     if(c==a||c==b)continue;
 9                     for(int d=0;d<=9;d++){
10                         if(d==a||d==b||d==c)continue;
11                         for(int e=0;e<=9;e++){
12                             if(e==a||e==b||e==c||e==d)continue;
13                             for(int f=0;f<=9;f++){
14                                 if(f==a||f==b||f==c||f==d)continue;
15                                 int t=a*100+b*10+c;
16                                 int tt=a*100000+d*10000+e*1000+f*100+d*10+b;
17                                 if(t*t==tt){
18                                     System.out.println(t);
19                                 }
20                             }
21                         }
22                     }
23                 }
24             }
25     }
26 }
法二猜灯谜

2、标题:连续奇数和

    小明看到一本书上写着:任何数字的立方都可以表示为连续奇数的和。

    比如:
 
2^3 = 8 = 3 + 5
3^3 = 27 = 7 + 9 + 11
4^3 = 64 = 1 + 3 + ... + 15

    虽然他没有想出怎么证明,但他想通过计算机进行验证。

    请你帮助小明写出 111 的立方之连续奇数和表示法的起始数字。如果有多个表示方案,选择起始数字小的方案。        

    请严格按照要求,通过浏览器提交答案。
    注意:只提交一个整数,不要写其它附加内容,比如:说明性的文字。

 1 import java.util.Scanner;
 2 
 3 public class Main{
 4     public static void main(String args[]){
 5         int n=(int) Math.pow(111, 3),i;
 6         for(i=1;i<n;i+=2){
 7             int a=i,sum=0;
 8             while(sum<n){
 9                 sum+=a;
10                 a+=2;
11             }
12             if(sum==n){System.out.println(i);break;}
13         }
14     }
15 }
连续奇数和

答案:371

3、

原文地址:https://www.cnblogs.com/qinmeizhen/p/6848252.html