蓝桥杯练习题库基础练习之VIP题_第1页
蓝桥杯练习题库基础练习之VIP题_第2页
蓝桥杯练习题库基础练习之VIP题_第3页
蓝桥杯练习题库基础练习之VIP题_第4页
蓝桥杯练习题库基础练习之VIP题_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、蓝桥杯练习题库-基础练习之VIP题作者:日期:基础练习阶乘计算时间限制:1 . 0s内存限制:5 1 2.0MB查看参考代码锦囊1数组。锦囊2使用数组来保存一个整数,按手算的方法处理。问题描述输入一个正整数n,输岀n!的值。其中n! =1*2 * *n。算法描述n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示 一个大整数a,A 0 表示a的个位,A1表示a的十位,依次类推。将a乘以一个整数k变为将数组 A的每一个元素都乘以k,请注意处理相应的进位。? 首先将 a设为1,然后乘2,乘3,当乘到n时,即得到了 n !的值。输入格式输入包含一个正整数 n,n

2、 v =1 0 00。输出格式输岀n!的准确值。样例输入1 0样例输出本题的C参考代码如下:#in c lude v std i o.h>#def ine N 10000int m a i n ()?i nt aN = 1;int k=0,l = 1,n;?i nt i ,j;scan f( "%d",&n);?fo r(i=1 ; iv =n;i+ +)?or( j =0;j v l;j+)? ? aj: =aj: *i+ k ;k= aj/10 0 00;?j=a j% 10000;?f(k)?aj= k;?+;?k =0 ;?p ri nt f (&qu

3、ot;% d", a l- 1);?fo r(i=l-2 ; i> = 0 ; i )初 i nt f(" %04d",a i ); 卬rin tf ("n");ret urn 0 ;基础练习 高精度加法时间限制:1 . 0s 内存限制:512 .0MB查看参考代码问题描述输入两个整数a和b,输岀这两个整数的和。a和 b都不超过100位。算法描述由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。定义一个数组A, A0用于存储a的个位,A1用于存储a的十位,依此类推。同样可以用一个数 组B来存

4、储b。? 计算c = a + b的时候,首先将A0与B : 0相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入 C0,即C :0等于(A0+B 0 )% 10。然后计算 A1与B : 1相加,这时还应将低位进上来的值 r也加起来,即C1应该是A1、B1 和r三个数 的和如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C1中。依此类推,即可求岀C的所有位。最后将C输出即可。输入格式输入包括两行,第一行为一个非负整数 a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。输出格式输出一行,表示a + b的值。样例输入2 8 9 0 2?0 12

5、2样例输出2 1 12 3 3454668012# include<stdi o . h >"#inc lu de<stri n g. h>#i n clude<stdlib.h>voi d f(c h ar a ,char b 口 )int w=200, i ,j,la , lb;la=str l en(a); l b=s t rle n (b);?3h a r c20 0 ;?or (i =la ; i< w;i+ ) ai=4 8 ;?or (i =lb;i<w ; i+) b i =48;aw-1 =0;bw- 1 =0;? o

6、 r(i=0; i <la;i+)ci=ai ;?or( i =0;i< w - 1 -1 a;i+)ai =48 ; j = 0 ;?f or( i =w-1-la;i<w-1;i+)a i =cj;j+ + ;f or(i=0 ; i < l b ; i +)ci=b i ; ?or(i=0; i <w- 1 -lb; i + + ) b i=4 8 ; j =0;?or (i = w -1-lb;i<w - 1;i+ +) bi=c j ;j + +;?f or (i=w; i> =0;i)? j= ai +b i -96;if( j >9

7、) ai-1 = ai - 1 +j/10; ci=j%1 0 + 48;cw-1=0;? or( i=0;i<w;i+)if(c i!=' 0z )break;for(;i<w-1;i+) p ri nt f(" % c",ci); p rin tf("n") in t ma i n()char a 2 00,b200 ; g ets(a); g et s (b);f (a,b);r e tu r n 0;基础练习时间限制:1Hu f f um an 树.0s内存限制:512.0MB查看参考代码锦囊1贪心算法。锦囊2按题目要求处理即

8、可。问题描述Hu ff ma n树在编码中有着广泛的应用。在这里,我们只关心Huf f ma n树的构造过程。?给岀一列数p J= p o, p i,,p n-1,用这列数构造Huffma n树的过程如下:1 ?.找到p订中最小的两个数,设为P"和Pb,将p a和p b从 p. 中删除掉,然后将它们的和加入到 p订中。这个 过程的费用记为pa + pbo2. 重复步骤1,直到pi中只剩下一个数。? 在上面的操作过程中,把所有的费用相加 ,就得到 了构造H uf f ma n树的总费用。?本题任务:对于给定的一个数列,现在请你求岀用该数列构造 Huf fman树的总费用。? 例如,对于

9、数列p =5,3, 8, 2,9 ,Hu f fman树的构造过程如下:1.找到 5,3 , 8,2, 92中最小的两个数,分别是2和3,从p中删除它们并将和5加入,得到 5 ,8,9, 5,费用为5 o2 .找到 5, 8 , 9,5中最小的两个数,分别是5和5,从p中删除它们并将和1 0加入,得到8,9, 10 费用为10o3. 找到8,9, 102中最小的两个数,分别是 8和9,从 p. 2中删除它们并将和17加入,得到 1 0,1 7 ,费用为17o4.找到1 0, 17中最小的两个数,分别是1 0和17,从pi中删除它们并将和27加入,得到27, 费用为27o5.现在,数列中只剩下一

10、个数 2 7,构造过程结束,总费用为5 + 1 0 + 17+27= 59°输入格式输入的第一行包含一个正整数 n(n < = 100)o ? 接下来是n个正整数,表示p°, p 1,p “ , 每个数不超过1000o 输出格式输岀用这些数构造Huffman树的总费用。样例输入5?5 3 8 2 9样例输出59#incl u de < s tdio.h>typ ed ef struc tint a 100;?nt le n ; h u f ;int s um=0 ;int de l(hu f 玄 in,int t ) ? n t i,j ;f or(i=0

11、; i <in- > l e n && in- > a i!=t; i +) ?fo r(;i v in-> le n-1;i+ )?in-> a i = i n > a i+ 1 ;?i n-> l en-;ret u r n 1;in t add(h u f* in,i n t t)in->a in->le n = t;i n->len + +; int fi n d_t w o_m in s(huf * i n ) ?i nt i, j ,t;? n t min a ,minb;?o r(i =0; i <

12、 i n-> len-1;i+ )? f o r(j= i + 1;j<i n -> l en; j + +) ?i f (i n ->ai > in->aj)? ?t=in->ai;? n -> a i =in- >a j ;?i?i >a j = t;m ina=in > a 0;m i nb=in->a 1 ;?d el (in , mina);del( in ,mi nb);ad d (in,m i na+m inb); ret u rn m i na+ m in b ; int ma i n()huf in;?

13、n t i ,j, n;s can f ("% d ",&n);?i n. l en=n;f or (i =0;i<n;i + +) ?s canf("%d",&i n. a i ) ?wh i l e(1)i f(in . le n=2 )sum=su m+in. a 0+in. a 1;?br e ak;sum+=fi n d_ t wo_mins( & i n)p r int f ("%d" , sum);re turn 0; # i n clude<i o stream#inc lu d e

14、 <que u e>us i n g namespace std ;/构造从小到大的优priori t y_q u eue< i n t , v ectorvi nt >,gre a terv int> > pq ;先队列i nt mai n ()int n;cin > > n;w hi l e (! p q.empty ()pq.pop();i nt x, s;fo r (in t i = 0 ; i < n; i+) cin > > x;pq.push (x);in t sum = 0 ;while (pq . s i ze

15、()> 1) s = pq.t op ();pq. pop ();s + = pq . t op();p q.pop();su m + = s;pq .push(s);cout << sum << en dl;基础练习2n皇后问题时间限制:1.0s内存限制:51 2 .0MB查看参考代码搜索算法。锦囊2先搜索n皇后的解,在拼凑成2 n皇后的解。问题描述给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一 行、同一列或同一条对角线上。问总共有多少

16、种放法?n小于等于8。输入格式输入的第一行为一个整数 n,表示棋盘的大小。? 接下来n行,每行n个0或1的整数,如果一 个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。输出格式输出一个整数,表示总共有多少种放法。样例输入4?1 1 1 1 ?1 1 1 1 ?11 1 1111 1样例输出2样例输入41 0 1 11 1 1 11 1 1 1?1 1 1 1样例输出0#incl u de< s tdio.h >int a 9 9 ,n,sum ;i nt row 1 9,dia g 11 17, d iagr1 1 7,row2 9,d i ag

17、 12 1 7 ,diag r 2 1 7;vo i d dfs2(i n t i)int j;?if (i= = n + 1)?sum+ ;?r etur n ;?o r (j =1;j< = n;j+ + )? f(a i j=1 &&ro w2 j ! = 0& & d i a g 12 n- i +j!= 0& &diagr2 i+j! = 0)?v oi?nt?ai j =0;?di a?di?r ow 2j =0 ; g 12 n-i+ j = 0 ; dia g r 2i+ j =0;? dfs2(i +1 );?ow2 j

18、=1;? diagl2n - i +j =1; ag r 2i + j= 1;aij =1 ;d df si (in tj , h ,r;if(i = = n +1)?f or(h=1.?i)r =1;r< = n; r +)i f (a 1r = = 1)?a 1r=0;? ro w2 r= 0 ;?dia gl 2 n h+门=0;?diagr2h+r = 0;? d f s2 ( h+1);row2r=1;?iagl2 n -h+r = 1;?i a gr 2 h+r = 1;?a 1 : : r=1;? ?f o r (j= 1;j <=n ; j+ + )?(ai j =

19、 1 &&row1j!=0&& d iagll n- i +j!=0&& d iag r?a : ij=0;? o w1j=0;?d i agl 1 n-i+j= 0 ;? d ia g r1i+ j =0;?fs 1 (i+1);bo w1 j =1;?(?iagl 1 n i+j= 1 ;1 i+j ! =0)?diagr1i+j=1 ;?aij = 1 ;? int ma in ()i n t i,j;w h i l e (sc an f("% d ",& n )!= EOF)g? su m=0;? f o r(

20、i=1 ; i<= n; i+ + )?f o r(j = 1 ;j<=n ; j+)?Sc an f ("%d",&a : i: j);?or (i = 1 ;i <= n; i+ +)? o w1i=row 2 i =1;for(i=1 ; i<=2*n;i+ +)?diagl 1 : i=dia g r1i=di a gl2 i =diagr2 i =1; ?for(i=1,j=1 ; j<= n ;j+ +)? ?f(a : 1j= = 1)? a: 1j=0;?Ow 1 : j=0;? d i ag l1n - i+ j =0

21、;?liag r 1 i + j =0 ;?d fs1 (i + 1);? r ow1j = 1;?i agl1n- i+ j = 1 ;?d iagr1 : i+j=1;?方1 j = 1 ;?print f( n",s um);be tur n 0 ;# i nclude<cstdi o >u s i n g n amesp ace std;int n ;int su m; boo l g 9 9 bo o l wh9;bool w d 17; bo o l wu17; b o o l b h 9;bool bd 1 7;b ool bu17;vo i d wh i

22、te (int h) if (h = =n)?Sum+; e lse ?or(i nt i=0;i< n;i+)?if(!g h i)co n ti n ue;?i f(w h i )conti n u e ;?f(wd i +h )co n tinue;?f(wu( i h) + n) con tin ue; ?w h i = w d i +h=wu (i h)+n =1;?white(h+1) ;?W h i = wd i +h = w u(i-h)+n = 0; ? void b 1 a c k( i nt h) i f(h = =n) ?w h i te (0);?e1 sef

23、o r (int i = 0 ;i v n;i+)?if(!gh i)cont i nue;?f (b h i ) co nt i n ue;? ?f(bdi + h)c ont inue;?(bu (i-h)+n ) c o ntinue;? g h i =0;? bh i = bd i +h=bu(i-h)+ n = 1; ?ack( h + 1 );? g h i = 1;?h i = bdi+ h= b u ( i -h)+ n= 0 ;3 int main() ?nt i;int x;sum=O;scanf("% d ",& n );f o r(i=0;

24、i <n;i+ ) wh i = bhi =0;?w d i =bdi=0;? wui =bu i =0;? f o r( int j=0 ; j <n; j+ + ) sea n f (" % d",&x );? g ij=(bool) x;? for(; i <2*n ; i + +) ?w d i= bd : i= 0 ;? wui =bu i=0;bl ac k(0);?3 r i n tf(" % dn",sum);retu rn 0;基础练习报时助手时间限制:1.0s内存限制:5 1 2. 0 MB查看参考代码锦囊1

25、判断,字符串输岀。锦囊2按要求输岀,判断特殊情况。问题描述给定当前的时间,请用英文的读法将它读岀来。?时间用时h和分m表示,在英文的读法中,读一个时间的方法是:如果m为0,则将时读岀来,然后加上“o' c lock ”,如3: 0 0读作“three oz c l oc k”。? 如 果m不为0,则将时读岀来,然后将分读岀来,如5:3 0读作“ fiv e t hir t y”。? 时和分的读法 使用的是英文数字的读法,其中020读作:?0: zero, 1: one, 2: t wo, 3:thr e e, 4:four,5:five,6 : s ix,7: se v en, 8 :

26、 ei g h t, 9:n i n e, 1 0: ten,11: e lev e n,1 2 :twelve, 13 : t hirte en, 14 : fo urt ee n, 1 5:fif t een, 1 6:si xte en, 17:seven t een, 1 8:e ighte e n, 1 9 :n i ne t ee n , 20:twen t y。30读作t hirty ,40读作forty ,50读作fi f ty。?对于大于2 0小于6 0的数字,首先读整十的数,然后再加上个位数。如31首先读3 0再加1的读法,读作“ t h i r ty o ne”。? 按上

27、面的规则 21:5 4读作"t wenty on e fift y f o ur ”,9:07 读作"n ine sev e n”,0: 15 读作 “ zero f ifteen ”。输入格式输入包含两个非负整数h和m表示时间的时和分。非零的数字前没有前导0。h小于24, m小于60。输出格式输出时间时刻的英文。样例输入015样例输出z ero f ift e en#i nc 1 udev s t dio. h ># in c 1u d eV str ing .h>int m ain()in t h ,m ;c har g 50 50="ze r o

28、" , Ho ne", "t w o" , "th r ee","fo ur "," fi ve"," s ix ",”seven","eigh t ","nin e ","t e n" ," elev e n", " t we 1 ve","thirteen"," f ourt e en”," f i fteen",

29、"sixte en" ,"sevente en"," eigh t een"," ninet e en","t w enty "応har s1 0 10 = " t w e nty", "thi r ty "," fo rty","fifty"©can f(" % d%d",&h,& m );?f( m = = 0)if(h< 2 1) prin t f ( &qu

30、ot;%s o' clock" , g h) ; e lse p r intf(" %s % s o 'clock",sh/10-2 , gh% 1 0);else ? f (h<21) printf ("%s" , g h );e 1 se prin t f("%s % s ", s h/10-2 , gh% 1 0:);?f( m <21 ) p rintf( " %s" , g m );else p r i ntf( " %s % s ", s m /

31、 102 ,gm%10 ); ?p rin t f("n");re t urn 0;#incl ud e v i os tream>#i n c 1 ude < s trin g >#inc 1u de <map>us ing n a mesp aces td;int main(intarg c, c ha r * 衣 a rg v)?map< i n t , s trin g > m aptim e;?m aptim e 0= " ze ro"maptime1 ="o n e"m ap t

32、i me 2= " two"map ti m e 3="three"m a ptime 4 = "fou r"?map t im e 5 ="five"ma pt ime 6 =" six"mapti m e7 = " se v e n"ma pt i me 8= " e ig h t"?m ap ti me9 =" nin e"?map t im e10 =" t en"?mapt i me11 =" e

33、 1 even"?m aptim e12="tw e lve"m apt im e 13="t h ir t e e n"ma pt i me 1 4 ="fourtee n "?m 即 t im e 15="f i fteen"m aptime1 6 ="s ix te e n"?map time 17="sevente e n"map ti me 1 8=" e i gh tee n"mapt i m e 1 9=" ni n et

34、een"?m ap time2 0 = "t w e nty"?maptime 3 0=" t h i rty"map t im e 40="fo r ty"?m a pt im e50 = "fifty"i n t h ,m ;cin>>h> > m;if( m= 0)g? f ( h < = 20)? cout< Vm ap t i m e h< v " o 'c 1 o c k"?e 1s e? ? cou t <<m

35、ap t ime 2 0 v <" "<<map t im e h-20 <<" o'cl o ck"?e1 se?f (h<=20)cout<<mapt i m eh vv ""? elseEout v <maptime 2 0 <<" "< v mapt im eh-2 0 v <""i f(m< = 20)I!co u t v <maptime m << "else ?

36、?nt k=m%10;? cout<<maptim e m-k<<"" <<maptime k v <""?ret u rn 0;基础练习回形取数时间限制:1.0s 内存限制:5 12. 0 MB查看参考代码问题描述回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式输入第一行是两个不超过 2 0 0的正整数m, n,表示矩阵的行和列。接下来 m行每行n个整数, 表示这个矩阵。输出格式输岀只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个

37、空格分隔,行末不要 有多余的空格。样例输入3 3 1? 2 3 ?4 5 67 89样例输出14 7 896 32 5样例输入3 21 2 3? 45? 6样例输出1 35 64 2#i n c lu de vs tdio.h># i n c lude <strin g .h>#d efin e MA X_N 2 0 0int m , n ;MAX _N :&& bi: j = 0)int a M A X_ NMAX _N ,bMA X_ int s =0;void solve(i n t i,intj)?f(i< m && i>

38、= 0 && j<n & & j>=0 ?pr i ntf (” %d ",j);bi叮=1;?e ls e?S+ ;re t ur n ;?f(s% 4 =0)?so lve (i+1,j );?f(s % 4= 1)solve(i,j +1);?f(s % 4=2 )?solv e (i - 1,j)5if(s%4 =3 )solve (i,j-1);if(s%4 =0)?so l ve(i + 1,j);?f(s%4 =1)?solve (i,j+1);i f( s %4 =2)sol v e(i-1,j);if (s%4= 3)so

39、lve (i,j-1);?etu r n ;i nt main()m em s e t( b,0,sizeof( b);?sc anf("% d %d",& m, &n);?nt i,j;?o r (i=0; i<m; i+)? fo r( j= 0 ; j<n; j+)s ca nf(” d ",&a i : j)sol ve (0,0);put s (" ”);?etu r n 0;基础练习龟兔赛跑预测时间限制:1. 0 s内存限制:5 1 2.0MB查看参考代码问题描述话说这个世界上有各种各样的兔子和乌龟,但是研

40、究发现,所有的兔子和乌龟都有一个共同的特点 喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病一一骄傲且 懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致一一它们不到终点决不停止。然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔 子和乌龟的数据一一兔子的速度 v1(表示每秒兔子能跑v1米),乌龟的速度V 2,以及兔子对应的t,s 值,以及赛道

41、的长度丨一一就能预测岀比赛的结果。但是小华很懒,不想通过手工计算推测岀比赛的结果,于是他找到了你一一清华大学计算机系的高才生一一请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t ,s,丨,预测该场比赛的结果。输入格式输入只有一行,包含用空格隔开的五个正整数 v1 ,v2,t, s ,丨,其中(v 1,v2<=100; tv = 3 00;s<=1 0; l v =1000 0且为v1,v2的公倍数) 输出格式输岀包含两行,第一行输岀比赛结果一一一个大写字母“或“ R”或“ D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。第二行输出一个正整数,表示获胜者(或者

42、双方同时)到达终点所耗费的时间(秒数)。样例输入10 552 20样例输出D4样例输入10 55 1 20样例输出R3样例输入10 5 5 3 20样例输出T4#i n clu de <stdio. h >i nt mai n()i n t v1,v2,t,s , l, s 1 = 0,s 2=0 ,i=0;s canf ("%d % d %d %d %d" ,&v1 , &v 2,& t , &s,&l); w hile(s1<l & &s2 v l)g? si +=v1 ;s2+=v2;? + +

43、;?i f( si =l| s 2 = =l)break;if(s1-s2 > =t)s1 = v i* s;if(s1 >s2 )pri n t f ("Rn ”);?els e if(s2 > s1) pr intf(” Tn ”);?else ? p ri n tf( HD n");卬rintf(” %d ",i);r e turn 0 ;基础练习芯片测试时间限制:1.0s 内存限制:5 12.0 MB查看参考代码找出统计规律。锦囊2每列求和,总数大于一半为真,少于一半为假。问题描述有n (2 <n< 20 )块芯片,有好有坏,

44、已知好芯片比坏芯片多。? 每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给岀被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给岀好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。?给岀所有芯片的测试结果,问哪些芯片是好芯片。输入格式输入数据第一行为一个整数 n,表示芯片个数。? 第二行到第n+ 1行为n*n的一张表,每行n 个数据。表中的每个数据为0或 1,在这n行中的第i行第j列(K i, j < n)的数据表示用第i块芯 片测试第j块芯片时得到的测试结果,1表示好,0表示坏,i=j时一律为1 (并不表示该芯片对本身 的测试结果。芯片不能对本身进行测试)。输

45、出格式按从小到大的顺序输出所有好芯片的编号样例输入3?1 01 ?0 101 0 1样例输出1 3#incl u de< s t d io .h>#i nc l u devs tring.h>i n t main()i n t a5050;i nt i, j, n ,s;sca nf("%d", &n);? o r (j = 0; j<n;j+ + )for( i =0;i v n; i+ ) sc an f("% dH , & a ij );f or(j=0 ; j <n;j+ +) s = 0;f o r(i= 0

46、;i <n ;i+) s =s+ aj i ; if (s >n/2. 0)p r i ntf("%d ",j + 1);? e turn 0 ;#i n c lu de<i o s t ream># i n clude<c s tdio># i nc lud e < c strin g >using nam e spa ce std;bool a 2525 : b o ol v 2 5 ;in t n;b o o ldfs(i ntk )if(k =:=n)i nt sum= 0;for (i n t i = 1;i<

47、= n ;i+ + )i f (v i ) sum+ + ;if ( s um> n sum)f o r (i n t i =1;i v= n; i +)if (vi)prin tf( "%d" ,i);return tr ue ;if (vk = =tr u e)i nt len =0,s 25;f or (int i =1; i <=n;i+ +) if (! a k: i && vi)s+le n = i;v i =fa Is e;if (dfs( k +1) r e t urn t r ue;for (inti=1;i<=len ;

48、 i+)vs i =t r ue;if (d fs( k+1) r e turn tr ue;i n t m a in ()sc a nf("% d ", & n);mem set (v, tru e,size of (v);for (int i =1;i<=n ;i +)for (i n t j =1;j< = n;j+ + )i nt c;sca n f ("%d",& c );if (c) aij = 1; els e aij= 0 ;df s ( 1 );r eturn 0;基础练习FJ的字符串时间限制:1 . 0s

49、内存限制:512.0 MB查看参考代码问题描述FJ在沙盘上写了这样一些字符串:? A1 = “ A” ? A2 = “ ABA ? A 3 = “ ABAC ABAA4 =“ AB ACABADAACABA? 你能找岀其中的规律并写所有的数列 AN吗?输入格式仅有一个数:N < 2 6。输出格式请输岀相应的字符串AN以一个换行符结束。输岀中不得含有多余的空格或换行、回车符。样例输入3样例输出A BAC ABA#in c lude<s td io . h>v o id f( in t a)?i f(a=O)prin t f(" % c ", 'A&#

50、39;);e 1 seg? f(a- 1); 中 r intf(” c", a +' A');? f(a- 1);in t m a in()in t a;sc anf("%d",& a); f(a-1);prin t f("n"); re t ur n 0;#i n clude v i o stream >#includ e <cs t d i o>u si ng n ame s pace std;voi d dfs(int k,in t p)?f (k =1)gprin t f(" % c&

51、quot;,p+' A '); retu rn;?dfs (k /2,p-1) ;dfs(1,p);dfs(k/ 2, p-1);int mai n ()in t n;sc anf (” %d", &n);int s um = 1 ;n-;for (i nt i= 1 ; i <=n ; i+) sum=s u m* 2 + 1 ;?dfs (sum, n) ;?r etu rn 0 ;基础练习Si n e之舞时间限制:1. 0s 内存限制:5 12. OM B查看参考代码问题描述最近F J为他的奶牛们开设了数学分析课,F J知道若要学好这门课,必须有一

52、个好的三角函数基本 功。所以他准备和奶牛们做一个“Sin e之舞”的游戏,寓教于乐,提高奶牛们的计算能力。?不妨设A n=si n( 1 - s in (2+si n(3 si n( 4 +. . .si n(n).)Sn=(.(A1+ n)A2+n-1)A3+ . .+2)A n +1? FJ想让奶牛们计算 Sn的值,请你帮助F J打印岀Sn的完整表达式,以方便奶牛们做题。输入格式仅有一个数:N<201。输出格式请输出相应的表达式Sn ,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。样例输入3样例输出(sin(1) +3) s in(1s i n (2 ) ) + 2) s

53、 i n (1 sin (2 + si n (3)+1# in clud e <std i o . h >v oid pr i n tA(int n, in t k )if (n = = k)p rint f( "sin(%d)",n);elseprintf("sin( %d ", n);printf( n % 2 = = O ? "+ " :" -H);pr i ntA(n + 1, k);printf(")");voi d p rin tS(int n, i n t k)if (n = 1

54、 )printA (1, n);p r i ntf(” + % dH , k - n);e 1 seprint f ("(”);p ri n tS(n -1, k);p r intf (")");prin t A(1, n);pr i n tf ("+%d " , k - n);in t main()int N;sc anf (" % d ",& N);pr in tS( N , N + 1);pn ”);r eturn 0;# i n elude v std io .h>vo i d A n_ Output(

55、 intn,int t )if (n = = t)p r i nt f ("s i n(%d)", t);?eturn ;?char e;応=t % 2=1?'+ ':'-'?3r int f("sin(% d% e", t, c);A n _Ou t p u t ( n, +t); printf(")");v o id Sn _O utpu t ( i nt n, i nt t).+ 2) A n+ 1?/ Sn= (. (A 1 + n )A2+n-1 ) A3 + . if( n = t )?be

56、t urn ;?p r int f ("(");SnOu tput (n, t+1); if (t ! = n - 1)?printf(”)”);?An_Output(n - t, 1); ?p rin t f (” +%d ”,t+1); i nt main()i nt n ;?sca nf(" % d", &n); ?Sn_Outp u t ( n, 1);if (n! =1 )? prin t f (”)");A n_Ou tput( n, 1); p rintf("+1n ”);ketur n0 ;基础练习数的读法时间

57、限制:1.0s内存限制:512.0 MB查看参考代码锦囊1条件判断。锦囊2本题判断较复杂,要注意处理,使用函数编程会方便一些。问题描述Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。比如说,在对学生讲解第1 2 34 5670 0 9号位置上的碱基时,光看着数字是很难准确的念岀来的。所以,他迫切地需要一个系统,然后当他输入12 34 5 6 7009时,会给岀相应的念法:? 十二亿三千四百五十六万七千零九用汉语拼音表示为i er yi s a n qi a ns i b a i w u shi 1 iu w an q i qi a n 1 i ng ji u 这样他只需要照着念就可以了。你的任务是帮他设计这样一个系统:给定一个阿拉伯数字串,你帮他按照中文读写的规范转为汉语拼音字串,相邻的两个音节用一个空格符格开。?注意必须严格按照规范,比如说“ 1001 0 ”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论