1、蓝桥杯预赛题目答案2011年蓝桥杯预赛题目答案/预赛NO.1题#include void main() int JC = 1,1,2,6,24,120,720,5040,40320,362880; int i; int sum; int x; for (i=100; i1000; i+) sum = 0; x = i; while (x) sum += JCx%10; x /= 10; if (i = sum) printf(%dn,i); #include void main() double x10 = 7,8,8,8,8,20,8,8,8,8; int i,j; double dif =
2、 -1; double bad; double sum; int n=10; double t; for (i=0;i10;i+) sum = 0; for (j=0; jn ; j+) if (j!=i) sum+=xj; t = xi-sum/(n-1); if (tdif) dif = t; bad = xi; printf(%d,%fn,i,xi); printf(bad = %lfn,bad);/预赛NO.3题#include #include void reverse_str(char* buf, int n) char tmp; if (n2) return; tmp = buf
3、0; buf0 = bufn-1; bufn-1 = tmp; reverse_str(buf+1,n-2); void main() char a10 = zhanghe; reverse_str(a,strlen(a); printf(%sn,a);#include void fun(double dTestNo, int iBase) int iT8; int iNo; printf(十进制正小数 %f 转换成 %d 进制数为:,dTestNo, iBase); for(iNo=0;iNo8;iNo+) dTestNo *= iBase; iTiNo = (int)dTestNo; if
4、(dTestNo) dTestNo -= iTiNo; printf(0.); for(iNo=0; iNo8; iNo+) printf(%d, iTiNo); printf(n);void main ( ) double dTestNo= 0.795; int iBase; for(iBase=2;iBase=9;iBase+) fun(dTestNo,iBase); printf(n);#include #include #include void shift(char* s, int n) char* p; char* q; int len = strlen(s); char* s2;
5、 if(len=0) return; if(n=len) return; s2= (char*)malloc(sizeof(char)*(len+1); p = s; q = s2 + n % len; while(*p) *q+ = *p+; if(q-s2=len) *q = 0; q = s2; strcpy(s,s2); free(s2);void main() char str10 = zhanghe; shift(str,2); printf(%sn,str);/预赛NO.6题#include #include int g(int a, int b)/b是摇号产生的 char sa
6、=00000000; char sb=00000000; int n = 0; int i,j; char t; sprintf(sa,%8d,a); sprintf(sb,%8d,b); for(i=0; i8; i+) for(j=1; jn) n=j; sai+j = t; return n;void main() int a=12345678; int b=42347856; printf(%dn,g(a,b);预赛NO.7题#include /* m: 袋中红球的数目 n: 袋中白球的数目 x: 需要取出的数目 y: 红球至少出现的次数*/double pro(int m, int
7、n, int x, int y) double p1; double p2; if(yx) return 0; if(y=0) return 1; if(ym) return 0; if(x-ny) return 1; p1 = pro(m-1,n,x-1,y-1);/取红球 p2 = pro(m,n-1,x-1,y);/取白球 return (double)m/(m+n) * p1 + (double)n/(m+n) * p2;void main() int m,n,x; printf(请依次输入红球个数、白球个数及要取的球的个数:); scanf(%d%d%d,&m,&n,&x); pri
8、ntf(%lfn,pro(m,n,x,x/2+1);/预赛NO.8题#include #include int m2020;/矩阵int idx = 1;/位置编号int c;/层数int in;/n的值double dn;/n的值(用double型可以计算层数)void main() int i,k; int p,q; scanf(%lf,&dn); c = (int)(dn-0.1)/3+1; in = (int)dn; for (i=0,k=in-1;ic;k-=2,i+) if (i = k) mii = idx; break; for (p=i;pk;p+) mip = idx+;
9、for (p=i,q=k;pi;p-) mpi = idx+; for (p=0;pin;p+) for (q=0;qin-p;q+) printf(%4d,mpq); printf(n); /预赛NO.9题#include int sln;/方案的个数int gm;/商品的种类int price1000;/各种商品价钱int count1000;/各种商品的个数int method10001000;/每种解决方案中各商品的个数int cost;/当前花费void output()/输出解决方案 int i,j; printf(%dn,sln); for (i=0; isln; i+) for
10、 (j=0;jgm;j+) printf(%3d,methodij); printf(n); void fun(int m) int i; if (cost = 1000) for (i=0; i1000 | m0) return; /choose m +countm; cost += pricem; fun(m); /not choose m -countm; cost -= pricem; fun(m-1);void main() int m;/商品的种类 int k; scanf(%d,&m); gm=m; for (k=0;km;k+) scanf(%d,&pricek); fun(m
11、-1); output();/预赛NO.10题#include #include char a26 = abcdefghijklmnopqrstuvwxyz;char key26; /密钥int key_len; /密钥长度int m55; /加密矩阵char Input1000; /待加密串char Secret1000; /密文void InitM() int i,j; /将key中的字符装入矩阵 for (i=0;ikey_len;i+) mi/5i%5 = keyi; akeyi-97 = *;/表示已经装入矩阵 /将其余字母装入矩阵 for (j=0;j26 & i25;j+) if
12、 (aj != *) mi/5i%5 = aj; aj = *; i+; int InM(int i) int p,q; int flag=0; for (p=0;p5 & flag!=1;p+) for (q=0;q5;q+) if (Inputi = mpq) flag = 1; break; return flag;int row(int i) int p,q; for (p=0;p5;p+) for (q=0;q5;q+) if (Inputi = mpq) return p; int column(int i) int p,q; for (p=0;p5;p+) for (q=0;q5
13、;q+) if (Inputi = mpq) return q; void translate(char *input,int len) int i,j; int r1,r2,c1,c2; if (len = 1) Secret0 = Input0; else for (i=0; ilen; i+=2) j=i+1; if (Inputi = Inputj)|(InM(i)+InM(j) = 1) Secreti = Inputi; Secretj = Inputj; continue; if (row(i) = row(j)|(column(i) = column(j) Secreti =
14、Inputj; Secretj = Inputi; continue; r1 = row(i); c1 = column(i); r2 = row(j); c2 = column(j); Secreti = mr1c2; Secretj = mr2c1; if (i = len+1)/只剩1个 i-=2; Secreti = Inputi; void main() scanf(%s,key); scanf(%s,Input); key_len = strlen(key); InitM();/初始化加密矩阵 translate(Input,strlen(Input);/加密 printf(%sn,Secret);/输出密文
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1