蓝桥杯练习题库 4算法提高 VIP题(DOC) 下载本文

内容发布更新时间 : 2024/12/26 4:17:14星期一 下面是文章的全部内容请认真阅读。

1、 算法提高 日期计算

问题描述

已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况。尤其是逢百年不闰,逢400年闰的情况。

输入格式

输入只有一行 YYYY MM DD

输出格式

输出只有一行 W

数据规模和约定

1599 <= YYYY <= 2999 1 <= MM <= 12

1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期 1 <= W <= 7,分别代表周一到周日

样例输入

2011 11 11

样例输出

5

#include

int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int main(void){

int y,m,d,i,temp=0,sum=0,j,u; scanf(\ for(i=0;i<2011;i++){

if((i%4==0)&&(i0!=0)||(i@0==0)) {

sum++; }

sum+=365;

}sum=sum+365-50; for(i=0;i

if((i%4==0)&&(i0!=0)||(i@0==0)) {

temp++; }

temp+=365; }

for(j=1;j

if(((y%4==0)&&(y0!=0)||(y@0==0))&&(j==2))temp++; }temp+=d;

}

if(temp>=sum){

if((temp-sum+5)%7==0) printf(\ else

printf(\}else{

u=sum-temp; if(u<=5){

printf(\ }else{

printf(\ } }

return 0;

2、 算法提高 概率计算

问题描述

生成n个∈[a,b]的随机整数,输出它们的和为x的概率。

输入格式

一行输入四个整数依次为n,a,b,x,用空格分隔。

输出格式

输出一行包含一个小数位和为x的概率,小数点后保留四位小数

样例输入

2 1 3 4

样例输出

0.3333

数据规模和约定

对于50%的数据,n≤5.

对于100%的数据,n≤100,b≤100. #include #include double d[101][10001]; int n,a,b,x;

int main() { int i,j,k;

scanf(\ for(i=a;i<=b;i++) d[1][i]=1.0/(b-a+1); for(i=2;i<=n;i++) for(j=i*a;j<=i*b;j++) for(k=a;k<=b;k++)

d[i][j]+=d[1][k]*d[i-1][j-k]; printf(\ return 0; }

3、算法提高 6-17复数四则运算

设计复数库,实现基本的复数加减乘除运算。

输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。 注意考虑特殊情况,无法计算时输出字符串\。

样例输入

2 4 * -3 2

样例输出

-14-8i

样例输入

3 -2 + -1 3

样例输出

2+1i

#include int main() { double a,b,c,d; double bb=0.0; char op; scanf(\ bb=c*c+d*d; switch(op) { case 43:printf(\ case 45:printf(\ case 42:printf(\ case 47:{ if(bb!=0.0) if((a*c+b*d)/bb<0&&(a*c+b*d)/bb>-1) printf(\ else printf(\ else printf(\ } break; } return 0; }