当前位置:文档之家› 蓝桥杯练习系统题目汇总

蓝桥杯练习系统题目汇总

蓝桥杯练习系统题目汇总
蓝桥杯练习系统题目汇总

蓝桥杯练习系统题目汇总:

入门训练

1. Fibonacci数列

问题描述

Fibonacci数列的递推公式为:F n=F n-1+F n-2,其中F1=F2=1。

当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。

输入格式

输入包含一个整数n。

输出格式

输出一行,包含一个整数,表示F n除以10007的余数。

说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

样例输入

10

样例输出

55

样例输入

22

样例输出

7704

数据规模与约定

1 <= n <= 1,000,000。

参考代码:c++

1.#include

2.#include

3.#define MOD 10007

4.#define MAXN 1000001

5.int n, i, F[MAXN];

6.int main()

7.{

8.scanf("%d", &n);

9.F[1] = 1;

10.F[2] = 1;

11.for(i = 3; i <= n; ++i)

12.F[i] = (F[i-1] + F[i-2]) % MOD;

13.printf("%d\n", F[n]);

14.return0;

15.}

java:

1.import java.util.Scanner;

2.public class Main{

3.public static void main(String[] args) {

4.Scanner scanner = new Scanner(System.in) ;

5.int num = scanner.nextInt() ;

6.int[] a = new int[num+2] ;

7.a[1] = a[2] = 1;

8.if(num == 1) {

9.a[num] = 1 ;

10.}else if(num == 2) {

11.a[num] = 1 ;

12.}else{

13.for(int i = 3; i <= num; i++) {

14.a[i] = (a[i - 1] + a[i - 2]

) % 10007 ;

15.}

16.}

17.System.out.println(a[num]);

18.}

19.}

2. 实数输出

问题描述

给定圆的半径r,求圆的面积。

输入格式

输入包含一个整数r,表示圆的半径。

输出格式

输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。

说明:在本题中,输入是一个整数,但是输出是一个实数。

对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。

实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。

样例输入

4

样例输出

50.2654825

数据规模与约定

1 <= r <= 10000。

提示

本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。

c++

1.#include

2.#include

3.int main()

4.{

5.int r;

6.double s, PI;

7.scanf("%d", &r);

8.PI = atan(1.0) * 4;

9.s = PI * r * r;

10.printf("%.7lf", s);

11.return0;

12.}

java:

1.import java.util.Scanner;

2.public class Main{

3.private static final double PI = 3.14159265358979323;

4.public static void main(String[] args) {

5.int r = new Scanner(System.in).nextInt();

6.if(1 <= r && r <= 10000) {

7.double circular = PI*r*r;

8.String result = String.format("%.7f", circul

ar);

9.System.out.println(result);

10.}

11.}

12.}

3. 求和公式

问题描述

求1+2+3+...+n的值。

输入格式

输入包括一个整数n。

输出格式

输出一行,包括一个整数,表示1+2+3+...+n的值。

样例输入

4

样例输出

10

样例输入

100

说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。

一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数据都正确了你的程序就是完全正确的,潜在的错误可能仍然导致你的得分较低。

样例输出

5050

数据规模与约定

1 <= n <= 1,000,000,000。

说明:请注意这里的数据规模。

本题直接的想法是直接使用一个循环来累加,然而,当数据规模很大时,这种“暴力”的方法往往会导致超时。此时你需要想想其他方法。你可以试一试,如果使用1000000000作为你的程序的输入,你的程序是不是能在规定的上面规定的时限内运行出来。

本题另一个要值得注意的地方是答案的大小不在你的语言默认的整型(int)范围内,如果使用整型来保存结果,会导致结果错误。

如果你使用C++或C语言而且准备使用printf输出结果,则你的格式字符串应该写成%I64d以输出long long类型的整数。

c++:

1.#include

https://www.doczj.com/doc/1910344223.html,ing namespace std;

3.int main()

4.{

5.long long n;

6.cin >> n;

7.cout << (1+n) * n / 2;

8.return0;

9.}

c:

1.#include

2.int main()

3.{

4.int n;

5.long long ret = 0, tmp;

6.scanf("%d", &n);

7.tmp = n;

8.printf("%I64d", (1+tmp) * tmp / 2);

9.return0;

10.}

java:

1.import java.io.BufferedReader;

2.import java.io.IOException;

3.import java.io.InputStreamReader;

4.public class Main {

5.public static void main(String args[]) throws NumberF

ormatException, IOException{

6.BufferedReader strin = new BufferedReader(new

InputStreamReader(System.in));

7.long i = Integer.parseInt(strin.readLine());

8.long sum = (1+i)*i/2;

9.System.out.println(sum);

10.}

11.}

4. A+B问题

问题描述

输入A、B,输出A+B。

说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。

输入格式

输入的第一行包括两个整数,由空格分隔,分别表示A、B。

说明:“输入格式”是描述在测试你的程序时,所给的输入一定满足的格式。

做题时你应该假设所给的输入是一定满足输入格式的要求的,所以你不需要对输入的格式进行检查。多余的格式检查可能会适得其反,使用你的程序错误。

在测试的时候,系统会自动将输入数据输入到你的程序中,你不能给任何提示。比如,你在输入的时候提示“请输入A、B”之类的话是不需要的,这些多余的输出会使得你的程序被判定为错误。

输出格式

输出一行,包括一个整数,表示A+B的值。

说明:“输出格式”是要求你的程序在输出结果的时候必须满足的格式。

在输出时,你的程序必须满足这个格式的要求,不能少任何内容,也不能多任何内容。如果你的内容和输出格式要求的不一样,你的程序会被判断为错误,包括你输出了提示信息、中间调试信息、计时或者统计的信息等。

样例输入

12 45

说明:“样例输入”给出了一组满足“输入格式”要求的输入的例子。

这里给出的输入只是可能用来测试你的程序的一个输入,在测试的时候,还会有更多的输入用来测试你的程序。

样例输出

57

说明:“样例输出”给出了一组满足“输出格式”要求的输出的例子。

样例输出中的结果是和样例输入中的是对应的,因此,你可以使用样例的输入输出简单的检查你的程序。

要特别指出的是,能够通过样例输入输出的程序并不一定是正确的程序,在测试的时候,会用很多组数据进行测试,而不局限于样例数据。有可能一个程序通过了样例数据,但测试的时候仍只能得0分,可能因为这个程序只在一些类似样例的特例中正确,而不具有通用性,再测试更多数据时会出现错误。

比如,对于本题,如果你写一个程序不管输入是什么都输入57,则样例数据是对的,但是测试其他数据,哪怕输入是1和2,这个程序也输出57,则对于其他数据这个程序都不正确。数据规模与约定

-10000 <= A, B <= 10000。

说明:“数据规模与约定”中给出了试题中主要参数的范围。

这个范围对于解题非常重要,不同的数据范围会导致试题需要使用不同的解法来解决。比如本题中给的A、B范围不大,可以使用整型(int)来保存,如果范围更大,超过int的范围,则要考虑其他方法来保存大数。

有一些范围在方便的时候是在“问题描述”中直接给的,所以在做题时不仅要看这个范围,还要注意问题描述。

提示

本题的C++源代码如下:

1.#include

2.

https://www.doczj.com/doc/1910344223.html,ing namespace std;

4.

5.int main()

6.{

7.int a,b;

8. cin >> a >>b;

9. cout << a +b;

10.return0;

11.}

本题的C源代码如下:

1.#include

2.

3.int main()

4.{

5.int a,b;

6. scanf("%d%d", &a,&b);

7. printf("%d",a+b);

8.return0;

9.}

本题的Java源代码如下:

1.import java.util.*;

2.

3.public class Main

4.{

5.public static void main(String args[])

6.{

7. Scanner sc = new Scanner(System.in);

8. Integer a = sc.nextInt();

9. Integer b = sc.nextInt();

10. System.out.println(a + b);

11.}

12.}

说明:要答题,请点击页面上方的“提交此题”按钮,页面将跳转到提交代码的页面,选择好你的编译语言,将你的编写好的代码粘贴到代码框中,再点击“提交答案”即可。

你的答案提交给系统后系统会自动对你的代码进行判分,并跳转到结果的列表里面,你可以直接从列表中看到你提交的代码的状态,一般几秒钟后就可以看到判分的结果。

本题作为第一题,在提示中已经分别给了C++和Java的代码,你可以直接把这个代码拷贝过去作为自己的代码提交。

请特别注意,Java的主类名必须是Main。

基础练习

1.基础练习闰年判断

问题描述

给定一个年份,判断这一年是不是闰年。

当以下情况之一满足时,这一年是闰年:

1. 年份是4的倍数而不是100的倍数;

2. 年份是400的倍数。

其他的年份都不是闰年。

输入格式

输入包含一个整数y,表示当前的年份。

输出格式

输出一行,如果给定的年份是闰年,则输出yes,否则输出no。

说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。

样例输入

2013

样例输出

no

样例输入

2016

样例输出

yes

数据规模与约定

1990 <= y <= 2050。

c++:

1.#include

https://www.doczj.com/doc/1910344223.html,ing namespace std;

3.int main()

4.{

5.int y;

6.cin >> y;

7.if(y%4==0&& y%100!=0|| y%400==0)

8.cout << "yes"<< endl;

9.else

10.cout << "no"<< endl;

11.return0;

12.}

c:

1.#include

2.int main()

3.{

4.int y;

5.scanf("%d", &y);

6.if(y%4==0&& y%100!=0|| y%400==0)

7.printf("yes");

8.else

9.printf("no");

10.return0;

11.}

java:

1.import java.io.BufferedReader;

2.import java.io.IOException;

3.import java.io.InputStreamReader;

4.

5.

6.public class Main {

7.public static void main(String args[]) throws NumberF

ormatException, IOException{

8.BufferedReader strin = new BufferedReader(new

InputStreamReader(System.in));

9.int i = Integer.parseInt(strin.readLine());

10.if((i%4==0&&i%100!=0)||i%400==0){

11.System.out.print("yes");

12.}else{

13.System.out.print("no");

14.}

15.}

16.

17.}

2.基础练习01字串

问题描述

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

输入格式

本试题没有输入。

输出格式

输出32行,按从小到大的顺序每行一个长度为5的01串。

样例输出

00000

00001

00010

00011

<以下部分省略>

1.#include

https://www.doczj.com/doc/1910344223.html,ing namespace std;

3.int main()

4.{

5.for(int i = 0; i <= 1; ++i)

6.for(int j = 0; j <= 1; ++j)

7.for(int k = 0; k <= 1; ++k)

8.for(int l = 0; l <= 1; ++l

)

9.for(int m = 0; m <=

1; ++m)

10.cout << i << j

<< k << l << m << endl;

11.return0;

12.}

1.#include

2.int main()

3.{

4.int i, j, k, l, m;

5.for(i = 0; i <= 1; ++i)

6.for(j = 0; j <= 1; ++j)

7.for(k = 0; k <= 1; ++k)

8.for(l = 0; l <= 1; ++l)

9.for(m = 0; m <= 1;

++m)

10.printf("%d%d%d%d%d\

n", i, j, k, l, m);

11.return0;

12.}

1.

2.public class Main{

3.public static void main (String args[]){

4.

5.for(int a1=0;a1<2;a1++){

6.for(int a2=0;a2<2;a2++){

7.for(int a3=0;a3<2;a3++){

8.for(int a4=0;a4<2;a4++){

9.for(int a5=0;a5<2;a5++){

10.StringBuffer s=new String

Buffer();

11.System.out.println(s.append

(a1).append(a2).append(a3).append(a4).append(a5));

12.}

13.}

14.}

15.}

16.}

17.

18.}

19.}

3.基础练习字母图形

问题描述

利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式

输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式

输出n行,每个m个字符,为你的图形。

样例输入

5 7

样例输出

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

数据规模与约定

1 <= n, m <= 26。

c++

1.#include

2.#include

https://www.doczj.com/doc/1910344223.html,ing namespace std;

4.int main()

5.{

6.int n, m;

7.cin >> n >> m;

8.for(int i = 0; i < n; ++i)

9.{

10.for(int j = 0; j < m; ++j)

11.cout << char('A'+abs(i-j));

12.cout << endl;

13.}

14.return0;

15.}

c

1.#include

2.#include

3.#define MAXSIZE 26

4.

5.//输出

6.void Print(char matrix[MAXSIZE][MAXSIZE],int n,int m)

7.{

8.int i,j;

9.for(i=0;i

10.{

11.for(j=0;j

12.{

13.printf("%c",matrix[i][j]);

14.}

15.printf("\n");

16.}

17.}

18.

19.//实现字母图形

20.void Drawing(int n,int m)

21.{

22.int i,j;

23.int point=0;

24.char str;

25.char matrix[MAXSIZE][MAXSIZE];

26.for(i=0;i

27.{

28.str='A';

29.for(j=i;j

30.{

31.matrix[i][j]=str++;

32.}

33.str='A';

34.for(j=i-1;j>=0;j--)

35.{

36.matrix[i][j]=++str;

37.}

38.}

39.Print(matrix,n,m);

40.}

41.int main()

42.{

43.int n,m;

44.scanf("%d%d",&n,&m);

45.Drawing(n,m);

46.return0;

47.}

java

1.import java.io.BufferedReader;

2.import java.io.IOException;

3.import java.io.InputStreamReader;

4.

5.

6.public class Main {

7.public static void main(String args[]) throws NumberF

ormatException, IOException{

8.BufferedReader strin = new BufferedReader(new

InputStreamReader(System.in));

9.String s = strin.readLine();

10.String st[] = s.split(" ");

11.char c[] = new char[Integer.parseInt(st[1])];

12.int time = 0;

13.int timemax = Integer.parseInt(st[0]);

14.for(int i=0;i

15.c[i] = (char) ('B'+i);

16.}

17.for(int k=0;k

18.for(int j =0;j

19.if(j

20.c[j]=(char) (c[j]+1);

21.}

22.if(j>=time){

23.c[j]=(char) (c[j]-1);

24.}

25.}

26.time++;

27.System.out.print(c);

28.System.out.println();

29.}

30.}

31.}

32.

基础练习数列特征

问题描述

给出n个数,找出这n个数的最大值,最小值,和。

输入格式

第一行为整数n,表示数的个数。

第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。

输出格式

输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。

样例输入

5

1 3 -

2 4 5

样例输出

5

-2

3

数据规模与约定

1 <= n <= 10000。

1.#include

2.#include

3.#include

4.#include

5.

https://www.doczj.com/doc/1910344223.html,ing namespace std;

7.

8.int main(){

9.int n;

10.while(cin>>n){

11.int a[10005];

12.int sum=0;

13.for(int i=0;i

14.scanf("%d",&a[i]);

15.sum+=a[i];

16.}

17.sort(a,a+n);

18.cout<

19.}

20.return0;

21.}

22.

1.#include

2.#include

3.#define MAXSIZE 10000

4.

5.int main()

6.{

7.int i;

8.int n;

9.int value;

10.int max=-MAXSIZE;

11.int min=MAXSIZE;

12.int sum=0;

13.scanf("%d",&n);

14.for(i=0;i

15.{

16.scanf("%d",&value);

17.if(value>max) max=value;

18.if(value

19.sum+=value;

20.}

21.printf("%d\n",max);

22.printf("%d\n",min);

23.printf("%d\n",sum);

24.return0;

25.}

26.

import java.io.*;

27.public class Main{

28.public static void main(String args[])throws Exception{

29.int n;

30.int sum=0;

31.String str=null;

32.String str2=null;

33.BufferedReader buf=new BufferedReader(new InputStream

Reader(System.in));

34.

35.str=buf.readLine();

36.n=Integer.parseInt(str);

37.

38.str2=buf.readLine();

39.String a[]=str2.split(" ");

40.int array2[]=new int[n];

41.for(int i=0;i

42.

43.array2[i]=Integer.parseInt(a[i]);

44.sum=sum+array2[i];

45.}

46.java.util.Arrays.sort(array2);

47.System.out.println(array2[n-1]);

48.System.out.println(array2[0]);

49.System.out.println(sum);

50.}

51.

52.}

基础练习查找整数

问题描述

给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。

输入格式

第一行包含一个整数n。

第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。

第三行包含一个整数a,为待查找的数。

输出格式

如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。

样例输入

6

1 9 4 8 3 9

9

样例输出

2

数据规模与约定

1 <= n <= 1000。

1.#include

https://www.doczj.com/doc/1910344223.html,ing namespace std;

3.const int MAXN = 10001;

4.int n, a, ans;

5.int s[MAXN];

6.int main()

7.{

8.cin >> n;

9.for(int i = 0; i < n; ++i)

10.cin >> s[i];

11.cin >> a;

12.ans = -1;

13.for(int i = 0; i < n; ++i)

14.{

15.if(s[i] == a)

16.{

17.ans = i + 1;

18.break;

19.}

20.}

21.cout << ans << endl;

22.return0;

23.}

1.#include

2.#define MAXN 10001

3.int n, a, ans;

4.int s[MAXN];

5.int main()

6.{

7.int i;

8.scanf("%d", &n);

9.for(i = 0; i < n; ++i)

10.scanf("%d", &s[i]);

11.scanf("%d", &a);

12.ans = -1;

13.for(i = 0; i < n; ++i)

14.{

15.if(s[i] == a)

16.{

17.ans = i + 1;

18.break;

19.}

20.}

21.printf("%d", ans);

22.return0;

23.import java.io.*;

24.public class Main {

25.public static void main (String args[])throws Exception{

26.BufferedReader sc=new BufferedReader(new InputStreamReader(Sy

stem.in));

27.int n=Integer.parseInt(sc.readLine());

28.String str=sc.readLine();

29.String s[]=str.split(" ");

30.String s2=sc.readLine();

31.int x=Integer.parseInt(s2);

32.int a[]=new int[n];

33.for(int j=0;j

34.a[j]=Integer.parseInt(s[j]);

35.}

36.for(int i=0;i

37.if(i==s.length-1&&x!=a[s.length-1]){

38.System.out.println(-1);

39.break;

40.}

41.if(x==a[i]){

42.System.out.println(i+1);

43.break;

44.}

45.

46.}

47.

48.}

49.}

50.}

基础练习杨辉三角形

问题描述

杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

下面给出了杨辉三角形的前4行:

1

1 1

1 2 1

1 3 3 1

给出n,输出它的前n行。

输入格式

输入包含一个数n。

输出格式

输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。

样例输入

4

样例输出

1

1 1

1 2 1

1 3 3 1

数据规模与约定

1 <= n <= 34。

1.#include

https://www.doczj.com/doc/1910344223.html,ing namespace std;

3.const int MAXN = 40;

4.int n;

5.int a[MAXN][MAXN];

6.int main()

7.{

8.cin >> n;

9.a[0][0] = 1;

10.for(int i = 0; i < n; ++i)

11.{

12.a[i][0] = a[i][i] = 1;

13.for(int j = 1; j < i; ++j)

14.a[i][j] = a[i-1][j-1] + a[i-1][j];

15.}

16.for(int i = 0; i < n; ++i)

17.{

18.for(int j = 0; j <= i; ++j)

19.cout << a[i][j] << " ";

20.cout << endl;

21.}

22.return0;

23.}

1.#include

2.#define MAXN 40

3.int n;

4.int a[MAXN][MAXN];

5.int main()

6.{

7.int i, j;

8.scanf("%d", &n);

9.a[0][0] = 1;

10.for(i = 0; i < n; ++i)

11.{

12.a[i][0] = a[i][i] = 1;

13.for(j = 1; j < i; ++j)

14.a[i][j] = a[i-1][j-1] + a[i-1][j];

15.}

16.for(i = 0; i < n; ++i)

17.{

18.for(j = 0; j <= i; ++j)

19.printf("%d ", a[i][j]);

20.printf("\n");

21.}

22.return0;

23.}

1.import java.io.BufferedReader;

2.import java.io.IOException;

3.import java.io.InputStreamReader;

4.

5.

6.public class Main {

7.public static void main(String args[]) throws NumberF

ormatException, IOException{

8.BufferedReader strin = new BufferedReader(new

InputStreamReader(System.in));

9.int time = Integer.parseInt(strin.readLine());

10.int triangle[][] = new int[time][time];

11.triangle[0][0] = 1;

12.//System.out.print(triangle[0][0]);

13.for(int j=0;j

14.for(int i=0;i

15.if(i==0){

16.triangle[j][i]=1;

17.}else{

18.triangle[j][i] = triangle

[j-1][i-1]+triangle[j-1][i];

19.}

20.System.out.print(triangle[j][i]);

21.System.out.print(" ");

22.}

23.System.out.println();

24.}

25.}

26.}

27.

基础练习特殊的数字

问题描述

153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。

输出格式

按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。

1.#include

https://www.doczj.com/doc/1910344223.html,ing namespace std;

3.int main()

4.{

5.int i,j,k;

6.for(i=1;i<=9;i++)

7.{

8.for(j=0;j<=9;j++)

9.{

10.for(k=0;k<=9;k++)

11.{

12.if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

13.{

14.cout<

15.}

16.}

17.}

18.}

蓝桥杯c c 省赛试题及答案解析

2016蓝桥杯c-c++B组省赛试题及解析 第一题 煤球数目 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

答案:171700 #include<> int main() { int a[101] ={0}; for(int i = 1 ; i < 101 ; i ++) a[i] = a[i-1] + i; int ans = 0; for(int j = 1 ; j < 101 ; j ++) ans += a[j]; printf("%d\n",ans); return 0; }

第二题 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? 请填写他开始过生日party的年龄数。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。 答案:26 #include<> int main()

{ int start,end; for(start = 1 ; start < 236 ; start ++) { for( end = start ; end < 236 ; end ++ ) { int sum = 0; for(int i = start; i <= end; i ++) sum += i; if( sum == 236) { printf("start : %d end : %d\n",start,end); } } }

蓝桥杯练习系统题目汇总c++版

蓝桥杯练习系统题目汇总 入门训练 1. Fibonacci数列 问题描述 Fibonacci数列的递推公式为:F n=F n-1+F n-2,其中F1=F2=1。 当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示F n除以10007的余数。 说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。 样例输入 10 样例输出 55 样例输入 22 样例输出 7704 数据规模与约定 1 <= n <= 1,000,000。 参考代码:c++ 1.#include 2.#include 3.#define MOD 10007 4.#define MAXN 1000001 5.int n, i, F[MAXN]; 6.int main() 7.{ 8.scanf("%d", &n); 9.F[1] = 1; 10.F[2] = 1; 11.for(i = 3; i <= n; ++i) 12.F[i] = (F[i-1] + F[i-2]) % MOD; 13.printf("%d\n", F[n]);

14.return0; 15.} 2. 实数输出 问题描述 给定圆的半径r,求圆的面积。 输入格式 输入包含一个整数r,表示圆的半径。 输出格式 输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。 说明:在本题中,输入是一个整数,但是输出是一个实数。 对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。 实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。 样例输入 4 样例输出 50.2654825 数据规模与约定 1 <= r <= 10000。 提示 本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。 c++ 1.#include 2.#include 3.int main() 4.{ 5.int r; 6.double s, PI; 7.scanf("%d", &r); 8.PI = atan(1.0) * 4; 9.s = PI * r * r; 10.printf("%.7lf", s); 11.return0; 12.} 3. 求和公式 问题描述 求1+2+3+...+n的值。

蓝桥杯java练习题分类汇总

蓝桥杯java练习题分类汇总 (一)字符串处理类型题目 1.密码破解 据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文,也就是要将这个过程反过来。 密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M 原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U (注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。) 输入:最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成: 1.起始行:START 2.密码消息:由1到200个字符组成一行,表示凯撒发出的一条消息. 3.结束行:END 在最后一个数据集之后,是另一行:ENDOFINPUT。 输出: 每个数据集对应一行,是凯撒的原始消息。 ?Sample Input START NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX END START N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ END START IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ END ENDOFINPUT ?Sample Output IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE 2. 判断是否为回文串 形如:“abccba”,“abcba”的串称为回文串(指顺读和倒读都一样的词

蓝桥杯(客观题)练习题

1.AT89系列单片机提供了两种省电方式:分别是__空闲模式_____和 ___掉电模式______。 2.远距离传输通常应采用__串行______通信。 3.MCS-51单片机有5个中断源,2个优先级,上电复位时,__外部中 断0______中断源优先级级别最高。 4.MCS-51单片机的堆栈区只可设置在_____片内RAM ____(器),堆 栈寄存器SP是____8___位寄存器。 5.MCS-51单片机外部中断请求信号有_电平方式________和脉冲方式, 在电平方式下,当采集到INT0、INT1的有效信号为___低电平______时,激活外部中断。 6.访问89C51片外数据存储器采用的是__寄存器间接_____寻址方式。 7.进行BCD码运算时,只需要在ADD和ADDC后面紧跟一条__DA __A____指令即可。 8.计算机(微处理器)能够直接识别并执行的语言是_机器语言______。 9.十六进制数D/A转换为十进制数是___218 _____,二进制数 10110110转换为十六进制数是__B6______。 10.键盘工作方式有三种,分别是__编程扫描______、___定时扫描 ______和中断扫描方式。 11.A/D转换的基本功能是把___模拟量______变成数字量。 12.溢出标志OV只有在进行___符号数______加法运算时才有意 义,OV=0表示加法运算结果__正确_____,OV=1表示加法运算结果超出了_________所能表达的符号数有效范围。

13.MCS51单片机的外部中断信号请求信号若设定为电平方式,只 有在中断请求引脚上采样到有效的___低电子______信号时,才能激活外部中断,而在脉冲方式时,只有在中断请求引脚上采样到脉冲的____后沿负跳_____有效信号时,才能激活外中断。 14.MCS51单片机的一个机器周期包含了___6______个状态周期, 每个状态周期又可划分为___2______拍节,一个机器周期实际又包含了______12___个震荡周期。 15.PCON寄存器中与串行通信有关的只有D7位(SMOD),该位为 波特率信增位。当SMOD=___1______时,串行口波特率增加1倍,当SMOD=_____0____时,串行口波特率为设定值。 16.外围的扩展芯片的选择方法有两种方式,它们分别是___线选法 ______和_____译码法____。 17.定时器的计数方式是对来自T0,T1引脚的脉冲计数,输入的 外部脉冲在___负跳变______时有效,计数器加1,定时功能也是通过计数器计数来实现的,定时功能下的计数脉冲来自单片机内部的____时针_____电路。 18.MCS-51单片机片内共有____128_____字节单元的RAM。 19.若MCS-51单片机的程序状态字PSW中的RSI,RS0=11,那么, 工作寄存器R0~R7的直接地址为__18H-1FH_______。 20.I/O编址技术有____独立编址_____和____统一编址_____两种方式。 21.I/O数据传送的控制方式有___中断驱动方式______,程序查询方 式和____通道控制方式_____。

蓝桥杯2016年JavaB组省赛题

2016年JavaB组省赛题 1.煤球数目 (结果填空) 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。 2.生日蜡烛 (结果填空) 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? 请填写他开始过生日party的年龄数。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。 3.凑算式 (结果填空) B DEF A + --- + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表0~9的数字,不同的字母代表不同的数字。 比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法? 注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。 5.抽签 (代码填空) X星球要派出一个5人组成的观察团前往W星。 其中: A国最多可以派出4人。 B国最多可以派出2人。 C国最多可以派出2人。 .... 那么最终派往W星的观察团会有多少种国别的不同组合呢? 下面的程序解决了这个问题。 数组a[] 中既是每个国家可以派出的最多的名额。 程序执行结果为: DEFFF CEFFF CDFFF CDEFF CCFFF CCEFF CCDFF CCDEF BEFFF BDFFF BDEFF BCFFF BCEFF BCDFF BCDEF

蓝桥杯练习系统题目汇总

蓝桥杯练习系统题目汇总: 入门训练 1. Fibonacci数列 问题描述 Fibonacci数列的递推公式为:F n=F n-1+F n-2,其中F1=F2=1。 当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示F n除以10007的余数。 说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。 样例输入 10 样例输出 55 样例输入 22 样例输出 7704 数据规模与约定 1 <= n <= 1,000,000。 参考代码:c++ 1.#include 2.#include 3.#define MOD 10007 4.#define MAXN 1000001 5.int n, i, F[MAXN]; 6.int main() 7.{ 8.scanf("%d", &n); 9.F[1] = 1; 10.F[2] = 1; 11.for(i = 3; i <= n; ++i) 12.F[i] = (F[i-1] + F[i-2]) % MOD; 13.printf("%d\n", F[n]); 14.return0; 15.}

java: 1.import java.util.Scanner; 2.public class Main{ 3.public static void main(String[] args) { 4.Scanner scanner = new Scanner(System.in) ; 5.int num = scanner.nextInt() ; 6.int[] a = new int[num+2] ; 7.a[1] = a[2] = 1; 8.if(num == 1) { 9.a[num] = 1 ; 10.}else if(num == 2) { 11.a[num] = 1 ; 12.}else{ 13.for(int i = 3; i <= num; i++) { 14.a[i] = (a[i - 1] + a[i - 2] ) % 10007 ; 15.} 16.} 17.System.out.println(a[num]); 18.} 19.} 2. 实数输出 问题描述 给定圆的半径r,求圆的面积。 输入格式 输入包含一个整数r,表示圆的半径。 输出格式 输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。 说明:在本题中,输入是一个整数,但是输出是一个实数。 对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。 实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。 样例输入 4 样例输出 50.2654825 数据规模与约定

2016年度蓝桥杯java高职C组

2016年蓝桥杯Java C组考试题(考试日期2016/3/20日)第一题: 有奖猜谜 小明很喜欢猜谜语。 最近,他被邀请参加了X星球的猜谜活动。 每位选手开始的时候都被发给777个电子币。 规则是:猜对了,手里的电子币数目翻倍, 猜错了,扣除555个电子币, 扣完为止。 小明一共猜了15条谜语。 战果为:vxvxvxvxvxvxvvx 其中v表示猜对了,x表示猜错了。 请你计算一下,小明最后手里的电子币数目是多少。 请填写表示最后电子币数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。 public static void main(String[] args) { int n=777; for(int i=1;i<=12;i++) { if(i%2!=0) { n=n*2; } else n=n-555; } n=n*2; n=n*2; n=n-555; System.out.println(n); } 答案:58497

第二题: 煤球数目 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。 public static void main(String[] args) { int sum[]=new int[101]; int sum1=0; int s=0; for(int i=1;i<=100;i++) { sum1=sum1+i; sum[i]=sum1; s=s+sum[i]; } System.out.println(s); } 答案:171700 第三题: 平方怪圈 如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。 对新产生的正整数再做同样的处理。 如此一来,你会发现,不管开始取的是什么数字, 最终如果不是落入1,就是落入同一个循环圈。 请写出这个循环圈中最大的那个数字。

2014第五届蓝桥杯JAVA本科B组试题及答案

2014第五届蓝桥杯JAVA本科B组试题及答案 1. 武功秘籍小明到X山洞探险 2000 10页和第1111页和第12页不在同一张纸上。 小明只想练习该书的第81页到第92 撕 80,81 82,8384,8586,87888990,9192,93 2. 切面条2根面条。 如果先对折13根面条。 如果连续对折25根面条。 10 1025 import java.util.Scanner; public class Main { public static void main(String []args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int num = (int)Math.pow(2, n) + 1; System.out.println(num); //结果:2015 } } 3. 猜字母把abcd...s共19个字母组成的序列重复拼接1062014的串。

接下来删除第1a35个等所有奇数位置的 字母。 写 出该字母。 q import java.util.Scanner; /** * 该程序类似与约瑟夫环的问题 */ public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = "abcdefghijklmnopqrs"; String str1 = ""; for(int i = 0;i < 106;i++){ str1 = str1 + str;

蓝桥杯哦2010第一届大赛试题

第一题,以下函数的功能是将任意整数进行因式分解, 请完成该程序的空缺使函数能够正常运算 void f(int n) { for(int i=2; i1) printf(“%d\n”, n); } 第二题,以下函数的功能是将给定字符串进行倒序输出,请完成该函数空缺部分。 char* p = “abcdef”; char* q = (char*)malloc(strlen(p)+1); for(int i=0, int len=strlen(p); i

第三题,(这题的题目到底是要干啥,本人到现在沿未明了,数学学统计好,但可以确定原题给出的代码就是如此) int f(int m, int n) { int a = 1; int m1 = m; //—–(3)—- a *= m1–; int b = 1; while(n>1) b *= n–; return a / b; } 第四题,任意给出一个四位数, 把它重新组成一个四位的最大数和一个最小数, 算出两者间的差。 例如:3721这个数,可以重组成:7321和1237,相数之差为7321-1237 请完善下面这个函数,以实现此功能 int f(int n) { int N[4]; for(int i=0; i<4; i++) { N[3-i] = n % 10;

蓝桥杯练习题库 3算法训练题.(DOC)

算法训练图形显示 时间限制:1.0s 内存限制:512.0MB 查看参考代码 问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * * * * * * * * #include int main() {int i,j,a[100][100],n; while(scanf("%d",&n)!=EOF) {for(i=0;i

9 2 30 样例输出 30 9 2 #include #include #define num 100 int main(void) { int i,j,t,a[3]={0}; for (i=0;i<3;i++) { scanf("%d",&a[i]); } for (i=0;i<3;i++) for (j=i;j<3;j++) if (a[i]<=a[j]){t=a[i];a[i]=a[j];a[j]=t;} for (i=0;i<3;i++) { printf("%d",a[i]); if(i!=2) printf(" "); } printf("\n"); return 0; } 算法训练2的次幂表示 时间限制:1.0s 内存限制:512.0MB 查看参考代码 问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0 现在约定幂次用括号来表示,即a^b表示为a(b) 此时,137可表示为:2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2表示) 3=2+2^0 所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)

2018蓝桥杯试题

2018蓝桥杯C语言b组国赛真题 1.标题:换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种。 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱。 小明有点强迫症,他坚持要求200元换出的零钞中2元的张数刚好是1元的张数的10倍, 剩下的当然都是5元面额的。 银行的工作人员有点为难,你能帮助算出:在满足小明要求的前提下,最少要换给他多少张钞票吗? (5元,2元,1元面额的必须都有,不能是0) 注意,需要提交的是一个整数,不要填写任何多余的内容。 手算都可以。。。下面是代码,答案74 1.#include https://www.doczj.com/doc/1910344223.html,ing namespace std; 3.int main(){ 4.for(int i=1;i<40;i++){ 5.for(int j=1;j<200;j++){ 6.if(5*i+2*10*j+1*j==200) 7. cout<<"5*"<

12.2.标题:激光样式 x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。 安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开! 国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果? 显然,如果只有3台机器,一共可以成5种样式,即: 全都关上(sorry, 此时无声胜有声,这也算一种) 开一台,共3种 开两台,只1种 30台就不好算了,国王只好请你帮忙了。 要求提交一个整数,表示30台激光器能形成的样式种数。 注意,只提交一个整数,不要填写任何多余的内容。 思路很简单,暴力搜索,30个灯光从左到右,从左边第一个开始,第一个可以开关,第二个要根据左边的灯光是否开启来取值,以此类推。。。答案2178309 1.#include 2.#include https://www.doczj.com/doc/1910344223.html,ing namespace std; 4.int ans = 0; 5.int x[31];//0代表关,1代表开 6. 7.void dfs(int index){ 8.if(index == 30){ 9.ans++; 10.return; 11.} 12.if(index == 0 || x[index-1] == 0){ //第一个灯光可以取0或1,当前灯 光左边要是没开,那当前灯光可以取0和1 13.for(int i=0;i<=1;i++){ 14.x[index] = i;

蓝桥杯Java试题

1. 历届试题核桃的数量 问题描述 小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是: 1. 各组的核桃数量必须相同 2. 各组内必须能平分核桃(当然是不能打碎的) 3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式 输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30) 输出格式 输出一个正整数,表示每袋核桃的数量。 样例输入1 2 4 5 样例输出1 20

样例输入2 3 1 1 样例输出2 3 JAVA 源代码 1import java.util.Scanner; 2public class Main { 3 4public static void main(String[] args){ 5 Scanner sc=new Scanner(System.in); 6int a=sc.nextInt(); 7int b=sc.nextInt(); 8int c=sc.nextInt(); 9int i; 10for(i=1;;i++){ 11if(i%a==0&&i%b==0&&i%c==0) 12 13break; 14 } 15 System.out.println(i); 16 }} 2.基础练习Sine之舞 时间限制:1.0s 内存限制:512.0MB 问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学

好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。 不妨设 An=sin(1–sin(2+sin(3–sin(4+...sin(n))...) Sn=(...(A1+n)A2+n-1)A3+...+2)An+1 FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。 输入格式 仅有一个数:N<201。 输出格式 请输出相应的表达式Sn,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。 样例输入 3 样例输出 ((sin(1)+3)sin(1–sin(2))+2)sin(1–sin(2+sin( 3)))+1 语言JAVA 源代码17import java.util.Scanner; 18public class Main { 19private static int m; 20public static void main(String[] args){ 21 Scanner sc=new Scanner(System.in); 22 m=sc.nextInt(); 23for(int i=0;i

蓝桥杯第一届初赛题目

第一届蓝桥杯预赛试题 c 本科 第一题,以下函数的功能是将任意整数进行因式分解, 请完成该程序的空缺使函数能够正常运算 void f(int n) { for(int i=2; i1) printf(“%d\n”, n); } 第二题,以下函数的功能是将给定字符串进行倒序输出,请完成该函数空缺部分。 char* p = “abcdef”; char* q = (char*)malloc(strlen(p)+1); for(int i=0, int len=strlen(p); i

q__1__ = p[i+1]; q[len-1] = p[0]; —–(2)—-; prin tf(“%s\n”, q); 第三题, int f(int m, int n) { int a = 1; int m1 = m; //—–(3)—- a *= m1–; int b = 1; while(n>1) b *= n–; return a / b; } 第四题,任意给出一个四位数, 把它重新组成一个四位的最大数和一个最小数, 算出两者间的差。 例如:3721这个数,可以重组成:7321和1237,相数之差为7321-1237 请完善下面这个函数,以实现此功能 int f(int n) { int N[4];

for(int i=0; i<4; i++) { N[3-i] = n % 10; —-(4)—- } for(i=0; i<3; i++) for(int j=0; j<3-i; j++) if(N[j]>N[j+1]) { int t = N[j+1]; N[j+1] = N[j]; N[j] = t; } int n_min=0; for(i=0; i<4; i++) n_min = n_min * 10 + N[i] ; int n_max = 0; for(i=3; i>=0; i–) n_max = n_max * 10 + N[i]; return n_max-n_min; } 第五题,假设有m+n个人,其中, m个人手持面额为5角的硬币, n个人手持面额为1元的硬币,

(完整版)蓝桥杯大赛青少年创意编程Scratch初级组模拟题

一、单选题(每题20分) 1、(难度系数1)在舞台添加小猫角色,它的所有设置均为默认设置。舞台布局和程序运行舞台布局程序运行结果 运行以下哪段程序后,可以得到以上结果。() A B C D以上程序都不对 2、(难度系数2)小猫看到远处好久不见的朋友,于是跳起来说“你好!”想引起朋友的注意,执行以下程序后,小猫说“你好!”一共几秒?() A 0 B 2 C4 D 8

3、(难度系数3)当角色执行完这段程序后,舞台可能出现的图形是?() A、正三角形 B、正四边形 C、正六边形 D、正八边形 4、(难度系数4)执行完这段程序后,变量b的值可能是?() A、11 B、65 C、130 D、6065

5、(难度系数5)小红想做一个月亮围绕地球旋转的动画,如图,舞台有两个角色:“地球”“月球”,并写如下程序,小红希望运行程序后,月球以地球为中心做圆周运动。() A、B、 B、D、

1、难度系数2,满分50分 准备工作:导入背景库中的“bedroom2”,并导入角色库中的“Abby”“Candy”角色。 编程实现: Abby打扫完房间,房间停电了,Abby点上了一根蜡烛。想象停电后,点上蜡烛的效果。 图1.“关灯以前” 图2.“关灯后”

1、程序开始运行时,显示如图1.“关灯以前” 2、2秒以后,背景变暗,屏幕左边的墙上出现比小猫自身还要大的影子,如图2.“关灯后”。 3、之后一直保持图2效果 4、蜡烛、Abby、影子之间和大小应大致正确。 将程序保存在桌面,命名为“1.sb2” 评判标准: 10分:程序运行后,按图1的效果显示并保持至少2秒钟; 30分:在10分的基础上,能按图2的要求背景变暗,出现Abby阴影; 50分:在30分的基础上,背景中的圣诞树仍可见,蜡烛、Abby、影子之间的位置关系 基本正确,Abby和影子的大小关系符号逻辑。 2、难度系数3,满分50分 编程实现:今天天气多云,小熊在海边散步,他的头顶飘来一朵云,一阵风吹来,云飘走了,越飘越远,最后消失在空中。 具体要求: 1、舞台背景选择图示背景,增加云朵、小熊角色。 2、程序开始运行时,“小熊”“云朵”角色出现在图1所示的位置。 3、“云朵”角色能实现“从小熊头顶飘离,并向右上角平滑地漂移,越飘越高,越飘越小,直到最后消失”的动画效果。 将程序保存在桌面,命名为“2.sb2” 图1 图2 图3 图4

蓝桥杯算法vip训练习题与答案带测试数据1

算法训练 编号:ALGO-1 题目:区间k大数查询列 关键字:排序查找 类型:普通试题 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 第三个包含一个正整数m,表示询问个数。 接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。 输出格式 总共输出m行,每行一个数,表示询问的答案。

样例输入 5 1 2 3 4 5 2 1 5 2 2 3 2 样例输出 4 2 数据规模与约定 对于30%的数据,n,m<=100; 对于100%的数据,n,m<=1000; 保证k<=(r-l+1),序列中的数<=1000000。本题的Java参考代码如下: import java.io.BufferedInputStream; import java.io.IOException; import java.util.Arrays; public class Main {

private static BufferedInputStream in = new BufferedInputStream(System.in);//回顾一下 public static void main(String[] args) throws IOException、//回顾 { int[] nums = new int[readInt()];//重点看一下 for(int i=0; i0; i--) { int a = readInt(); int b = readInt(); int c = readInt();//?? int[] tn = new int[b-a+1]; for(int j=0; j

2017年蓝桥杯省赛赛前集训题(共14题)

第1题:星系炸弹(2015年省赛C/C++B组第2题)在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。 有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。 请填写该日期,格式为yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19 请严格按照格式书写。不能出现其它文字或符号。 ?结果:2017-08-05 ?解决方法:用Excel拖 这个题会了的同学们把上课讲过的,课件上的,其他几道Excel拖动题都做一遍。 第2题:(2015年校内选拔赛C/C++B组第3题)如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗? 显然,这个值是介于2和3之间的一个数字。 请把x的值计算到小数后6位(四舍五入),并填写这个小数值。 注意:只填写一个小数,不要写任何多余的符号或说明。 #include #include

#include using namespace std; int main() { double x; for(x=2;x<=3;x+=1e-7) { if (abs(pow(x,x)-10)<1e-6) cout<

蓝桥杯试题标准答案(练习)

1、亲密数:假设有a、b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并且a不等于b,则称a和b是一对亲密数。如284和220就是一对亲密数。 #include int main() { int a,b,i,n; for(a=1;a<=10000;a++) { for(b=0,i=1;i<=a/2;i++) if(a%i==0) b+=i; for(n=0,i=1;i<=b/2;i++) if(b%i==0) n+=i; if(n==a&&a!=b&&a

int main() { long days = 5; /*1999年的最后一天为周5,把下一年加上5天对7取余为0的,则是周日*/ int i = 2000; for(;;) /*无循环终止条件,可以利用break语句终止循环*/ { if(i%4==0&&i%100!=0||i%400==0) { days = days%7+366; } else { days = days%7+365; } if(days%7==0&&i%100==99) { printf("%d",i); break; } i++; } return 0; } 3、马虎的算式:小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

蓝桥杯C语言本科B组预赛试题

蓝桥杯C语言本科B组预赛试题

————————————————————————————————作者:————————————————————————————————日期:

2014蓝桥杯C/C++语言本科B组预赛试题(完整) 1.啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。 注意:答案是一个整数。请通过浏览器提交答案。 不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。 2.切面条 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢? 答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。 3.李白打酒

话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。 注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。 4.史丰收速算 史丰收速算法的革命性贡献是:从高位算起,预测进位。不需要九九表,彻底颠覆了传统手算! 速算的核心基础是:1位数乘以多位数的乘法。 其中,乘以7是最复杂的,就以它为例。 因为,1/7是个循环小数:0.142857...,如果多位数超过142857...,就要进1 同理,2/7,3/7, ...6/7 也都是类似的循环小数,多位数超过n/7,就要进n

蓝桥杯java高职C组

蓝桥杯j a v a高职C组文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

2016年蓝桥杯Java C组考试题(考试日期2016/3/20日)第一题: 有奖猜谜 小明很喜欢猜谜语。 最近,他被邀请参加了X星球的猜谜活动。 每位选手开始的时候都被发给777个电子币。 规则是:猜对了,手里的电子币数目翻倍, 猜错了,扣除555个电子币, 扣完为止。 小明一共猜了15条谜语。 战果为:vxvxvxvxvxvxvvx 其中v表示猜对了,x表示猜错了。 请你计算一下,小明最后手里的电子币数目是多少。 请填写表示最后电子币数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。 public static void main(String[] args) { int n=777; for(int i=1;i<=12;i++) { if(i%2!=0) { n=n*2;

} else n=n-555; } n=n*2; n=n*2; n=n-555; System.out.println(n); } 答案:58497 第二题: 煤球数目 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

public static void main(String[] args) { int sum[]=new int[101]; int sum1=0; int s=0; for(int i=1;i<=100;i++) { sum1=sum1+i; sum[i]=sum1; s=s+sum[i]; } System.out.println(s); } 答案:171700 第三题: 平方怪圈 如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。对新产生的正整数再做同样的处理。 如此一来,你会发现,不管开始取的是什么数字, 最终如果不是落入1,就是落入同一个循环圈。 请写出这个循环圈中最大的那个数字。 请填写该最大数字。

相关主题
文本预览
相关文档 最新文档