算法标准答案.pdf
《算法标准答案.pdf》由会员分享,可在线阅读,更多相关《算法标准答案.pdf(150页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Problem H:Problem H: 乘法口诀乘法口诀Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 11234 Solved:Solved: 3034DescriptionDescription还记得以前小学时的九九乘法口诀吧。 现在要求你编写程序打印出乘法口诀。 不过现在的乘法口诀表跟以前稍微有点区别,我告诉你一个数字 n( 1 = n = 9),你要给我打出相应的 nn 乘法口诀表。InputInput多个测试数据。每个测试数据一行,输入整数 n.OutputOutput输出 nn
2、 乘法口诀表。 每个乘法口诀表中的任何一个乘式占 6 列,不足 6 列的在后面补空格。同一行 2 个乘式之间有一个空格。 两个乘法口诀表之间有一个空行。注意乘法口诀中每一行最后没有空格,如 4*4=16 和 5*5=25 后面都没有空格的。Sample InputSample Input126Sample OutputSample Output1*1=11*1=11*2=2 2*2=41*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*
3、6=18 4*6=24 5*6=30 6*6=36HINT%-2d 表示对齐方式为左对齐例如,printf(%-6d,100);将输出: 100#include#includeint main()int n,i,j;char a1010;while(scanf(%d,&n)!=EOF)for(i=1;i=n;i+)for(j=1;j=i-1;j+)aij=j*i;printf(%d*%d=%-2d ,j,i,aij);printf(%d*%d=%-2d,i,i,i*i);printf(n);printf(n);return 0;Problem G:Problem G: 打印金字塔打印金字塔Ti
4、me Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 6241 Solved:Solved: 3777DescriptionDescription请编写程序输出金字塔图形。InputInput多个测试数据。每个测试数据输入一个整数 n(1 = n = 9)OutputOutput输出 n 层金字塔。Sample InputSample Input13Sample OutputSample Output* * *HINT用双重循环做,外循环代表行数,第一个内循环输出空格,第二个内循环输出*for(;)f
5、or(;)/输出空格for(;)/输出*/外循环#includeint main()int n,i,j,k;while(scanf(%d,&n)!=EOF)for(i=1;i=n;i+)for(j=1;j=n-i;j+)printf( );for(k=1;k2*i;k+)printf(*);printf(n) ;return 0;3920:3920: 老外买瓷砖老外买瓷砖Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 1344 Solved:Solved: 656DescriptionDes
6、cription大酬宾活动的第三天,店里突然来了一个老外。还是高中生的小娥在开店。可怜的小娥被老外流畅的外语给吓蒙了。老外没方法,只好一个字母一个字母地把订单念给小娥。吓蒙的小娥只记得有几个元音字母了 aeiou),不过很不幸的是她把 H 也当作了 A,Y 当作了 I.InputInput第一行输入一个整数 n,表示老外说了多少句话。 然后是 n 行, 每一行是老外说的外语。OutputOutput对于老外说的每句话,请统计出小娥记得的各元音字母的个数包含记错的,每个元音 1 行,格式见例子Sample InputSample Input2Hello.How are you!Sample Ou
7、tputSample Outputa:1e:1i:0o:1u:0a:2e:1i:1o:2u:1HINTHINT一句话不超过 50 个字符#include void f(int* a,char* s) while(*s)switch(*s)case h:case H:case A:case a:a0+;break;case E:case e: a1+;break;case Y:case y:case I:case i: a2+;break;case O:case o: a3+;break;case U:case u: a4+;break;s+;int main()char s200;int a5
8、;int n,i,j;scanf(%d,&n);getchar();for(i=0;in;i+)for(j=0;j5;j+)aj=0;gets(s);f(a,s);printf(a:%dne:%dni:%dno:%dnu:%dn,a0,a1,a2,a3,a4);return 0;Problem A:Problem A: 双层金字塔双层金字塔Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 4962 Solved:Solved: 3290DescriptionDescription输出双层金字塔
9、。InputInput多个测试数据。每个测试数据输入一个整数 n( 2 = n = 9)OutputOutput输出双层金字塔。Sample InputSample Input25Sample OutputSample Output * * * * * * * * * *#includeint main()int n,i,j,a,b;while(scanf(%d,&n)!=EOF)for(i=1;i=n;i+)for(j=1;j=n-i;j+)printf( );for(j=1;j=2*i-1;j+)printf(*);printf(n);for(a=1;an;a+)for(b=1;b=a;b
10、+)printf( );for(b=1;b=2*(n-a)-1;b+)printf(*);printf(n);return 0;3919:3919: 堆瓷砖堆瓷砖Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 1819 Solved:Solved: 750DescriptionDescription上次来定制的客户买走了不少瓷砖,确实给公司带来了不少利润,可是望着裁剪下来的瓷砖,陈盖历发愁了。这些尺寸不一的瓷砖堆的满地都是。哎,还是想个方法把他们堆成堆吧。当然堆的时候最大的要放在下面,绝对不
11、允许大的瓷砖放在小的上面,否则变形了下次就不好卖了。你能帮助把这些瓷砖堆起来吗?InputInput第一行输入一个整数 n,表示共要堆成的堆数。然后是 n 行,每行先输入 1 个整数m,表示这一堆有 m 块瓷砖,然后紧跟着输入 m 个整数,表示瓷砖的尺寸OutputOutput对于每一堆输出一行,分别是该堆的瓷砖尺寸,按照从大到小进行排列,2 个数之间有一个空格Sample InputSample Input24 3 4 5 63 8 4 9Sample OutputSample Output6 5 4 39 8 4HINTn m 不会超过 501#include 2int main()34i
12、nt n,i,j,l,a50,index,t,k;5scanf(%d,&n);6for(k=0;kn;k+)78scanf(%d,&l);9for(j=0;jl;j+)10scanf(%d,&aj);11for(j=0;jl;j+)1213index=j;14for(i=j+1;il;i+)15if(aindexai) index=i;16t=aindex;17aindex=aj;18aj=t;192021for(j=0;jl-1;j+)22printf(%d ,aj);23printf(%dn,al-1);2425return 0;2627282930313233343918:3918: 定
13、制瓷砖定制瓷砖Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 1746 Solved:Solved: 1092DescriptionDescription新年大酬宾活动一开展,吸引了好多客户。这天来了一个客户,他有一个特别的要求。他需要定制不同尺寸的瓷砖,用来装修在杭州、临安等地买的 10 几套房子。他的要求是这样的,他报出房间的长与宽当然都是整数,然后你按照他的要求给他一个瓷砖的尺寸正方形的,也是整数,以该尺寸的瓷砖能正好铺满他要求的房间。当然他希望瓷砖的数量越少越好。ACM 出身的陈盖历
14、嘿嘿一笑,不就是求最大公约数吗?当然程序还是要你来写的。InputInput第一行输入一个整数 n,表示客户的房间数。然后是 n 行,每行输入 2 个整数,分别表示房间的长与宽OutputOutput对于每组数据,输出一个整数,表示瓷砖的边长Sample InputSample Input26 126 8Sample OutputSample Output62#includeint main() int n,i,a,b,t,j,m; scanf(%d,&n); for(i=1;ib) t=a;a=b;b=t; for(j=a;j=2;j-) if(a%j=0&b%j=0) break; m=j
15、; printf(%dn,j);return 0;4135:4135: 新年挂灯笼新年挂灯笼Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 128 MBSubmit:Submit: 1025 Solved:Solved: 525DescriptionDescription又是新的一年,家家户户挂灯笼。请你编写一个程序,能根据需要打印出灯笼的图案。InputInput多组测试数据,先输入一个整数 t,表示组数,然后输入然后输入 t 行,每行输入1 个整数 n(n 不会大于 9,代表灯笼上半部分的层数OutputOutput对于每组测
16、试数据输出对应的灯笼图案Sample InputSample Input3123Sample OutputSample Output* * * * * * *#include int main() int n; scanf(%d,&n); for(int i=1;i=n;i+) int x; int j; scanf(%d,&x); for(j=1;j=x;j+) for(int k=1;k=x-j;k+) printf( ); for(int k=0;k1;j-) for(int k=1;kx-j+2;k+) printf( ); for(int k=0;k(x+2*(j-2);k+) pr
17、intf(*); printf(n); return 0;4137:4137: 压岁钱压岁钱Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 128 MBSubmit:Submit: 1186 Solved:Solved: 721DescriptionDescription过年了,有些同学还能收到压岁钱。真羡慕。你能帮他算下,他收到了多少压岁钱吗?InputInput多组测试数据,先输入一个整数 T,表示组数,然后输入然后输入 t 行,每行先输入 1 个整数 n 表示他收到压岁钱的次数,后面紧跟着n 个整数,表示他每次收到的钱数Ou
18、tputOutput对于每组测试数据,请输出他收到压岁钱总数Sample InputSample Input23 100 200 3004 100 400 50 600Sample OutputSample Output6001150#include int main() int n,m,i,t,j,s; scanf(%d,&t); for(i=1;i=t;i+) scanf(%d,&n); s=0; for(j=0;jn;j+) scanf(%d,&m); s=s+m; printf(%dn,s); return 0;2413:2413: 求三角形面积求三角形面积C C 语言初学者百语言初学
19、者百题大战之十四题大战之十四Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 7507 Solved:Solved: 4152DescriptionDescription输入三角形的三边长,求三角形面积。为简单起见,设输入的三边长 a,b,c 能构成三角形。InputInput输入为一行,输入三角形的三条边长。OutputOutput输出为一行,计算出该三角形的面积,精确到小数点后 2 位Sample InputSample Input3 4 5Sample OutputSample Outp
20、utHINTHINT面积可以按下面的公式计算s=sqrt(p(p-a)(p-b)(p-c)其中 p=(a+b+c)/2#include#includeint main()float a,b,c,s,p;scanf(%f %f %f,&a,&b,&c);p=(a+b+c)*0.5;s=sqrt(p*(p-a)*(p-b)*(p-c);printf(%.2fn,s);return 0;2412:2412: 鹦鹉学舌鹦鹉学舌3 3C C语言初学者百题大语言初学者百题大战之十三战之十三Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64
21、MBSubmit:Submit: 5169 Solved:Solved: 2593DescriptionDescription鹦鹉越来越会说话了,你可以说一句话最多不要超过 80 个字符哦,鹦鹉也能很快把你的话重复一遍。InputInput输入一行,中间可能有空格,回车表示说完了。OutputOutput输出也为一行,输出刚刚输入的内容。Sample InputSample InputI am a student.Sample OutputSample OutputI am a student.#include#includeint main()char a81,* p=a;gets(a);p
22、uts(a);2411:2411: 鹦鹉学舌鹦鹉学舌2 2C C语言初学者百题大语言初学者百题大战之十二战之十二Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 4234 Solved:Solved: 3456DescriptionDescription还记得以前做过的那题鹦鹉学舌吗?恩,不错,那次要求输入一个整数,然后你要输出该整数。现在要求从终端键盘输入一个字符,以回车键确认,然后你的程序应该能输出该字符。InputInput输入一个字符,以回车确认OutputOutput输出你刚刚输入的
23、字符Sample InputSample InputeSample OutputSample Outpute#includeint main() char c; c = getchar(); putchar(c); printf(n);return 0;3549:3549: 更改大小写更改大小写Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 4089 Solved:Solved: 2942DescriptionDescription将输入一行字符串(小于 80 个字符),将其中的所有小写字母
24、改为大写,其他字符不变。InputInput输入一行字符串,以回车结束。OutputOutput将字符串中小写字母改大写后输出。Sample InputSample InputThere are 3 pens.Sample OutputSample OutputTHERE ARE 3 PENS.HINTHINT#include#includeint main()char s80;int len,i;gets(s); /输入一段字符len=strlen(s); /计算字符串长度for(i=0;i=a&si=z) /将小写字母转换为大写si=si-32;puts(s); /输出修改后的字符串ret
25、urn 0;3545:3545: 颠倒字符串颠倒字符串Time Limit:Time Limit: 1 Sec Memory Limit:Memory Limit: 64 MBSubmit:Submit: 4532 Solved:Solved: 2539DescriptionDescription输入一个以回车结束的字符串(少于 80 个字符),将字符串的内容颠倒过来再输出InputInput多组测试数据,每组输入一个以回车结束的字符串少于 80 个字符。OutputOutput将这个字符串颠倒过来输出Sample InputSample InputABC XYZMy godSample Ou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 标准答案
限制150内