ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:33.83KB ,
资源ID:7264184      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7264184.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(POJ多例题版.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

POJ多例题版.docx

1、POJ多例题版目录一、数的距离差二、按位转换整数到英文单词三、将字符串中的小写字母转换成大写字母四、最长最短单词 五、计算绩点 六、 按要求排序 七、计算多项式的值 八、计算两个分数的和 九、登山 十、计算平均年龄十一、数圈 十二、放苹果十三、计算约数的和 十四、冒泡排序 十五、构造新的模运算十六 、最大最小值 十七、 最大公约数与最小公倍数 十八、计算素数的和十九、任意进制间转换二十、二项式系数二十一、采药(POJ2733)二十二、日历问题(POJ2964)二十三、爬楼梯(POJ4017)二十四、大整数加法(POJ2981)二十五、肿瘤检测(POJ2677)二十六、肿瘤面积(POJ2713)

2、二十七、不吉利日期(POJ2723)二十八、八进制到十进制(POJ2735)二十九、分解因数(POJ2749)三十、垂直直方图(POJ2800)三十一、取石子游戏(POJ1067)三十二、分数加减法(POJ3979)一数的距离差给定一组正整数,其中的最大值和最小值分别为max和min,其中的一个数x到max和min的距离差D定义为 abs(abs(x-max) - abs(x-min)。 其中,abs()表示求一个数的绝对值 输入 输入第一行为整数n,剩余n行每行一个正整数。 输出 输出仅一行,它的值为使得距离差D最小的x。 样例输入 5 3 1 7 5 9 样例输出 提示 函数abs()定义

3、在stdlib.h中 例:(一) #include #include #define N 400 int main () int aN,DN; int i,n,max,m,min,D_min; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); max=a0; for(i=1;in;i+) if(maxai) max=ai; min=a0; for(i=1;iai) min=ai; for(i=0;in;i+) Di=abs(abs(ai-max)-abs(ai-min); D_min=D0; for(i=1;iDi) D_min=Di; m=ai; pri

4、ntf(%d,m); return 0; (二) #include #include #define N 500 int main() int aN,n,i,m,p,r,s,t; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); p=m=a0; for(i=1;iai) m=ai; if(pai) p=ai; s=abs(abs(a0-p)-abs(a0-m); t=a0; for(i=1;ir) s=r; t=ai; printf(%d,t); return 0; 二、按位转换整数到英文单词题目描述 请把输入整数的每位数字转换成英文。 如当输入1024时

5、,输出:one, zero, two, four 输入 输入为一个整数 输出 按整数每一位输出其英文单词,单词间用逗号加空格分隔,单词由小写字母组成。 样例输入 20345 样例输出 two, zero, three, four, five 提示 注意:大家要考虑数据为0的情况,此时如果取对0取对数会出错 例:(一) #include #define N 200 int main() int n,k,j,s; int aN; scanf(%d,&n); j=0; s=0; while(n!=0) k=n%10; n=n/10; aj=k; j+; s=s+j; for(j=s-1;j0;j-)

6、 switch(aj) case 0: printf(zero,);break; case 1: printf(one,);break; case 2: printf(two,);break; case 3: printf(three,);break; case 4: printf(four,);break; case 5: printf(five,);break; case 6: printf(six,);break; case 7: printf(seven,);break; case 8: printf(eight,);break; case 9: printf(nine,);break

7、; switch(a0) case 0: printf(zero);break; case 1: printf(one);break; case 2: printf(two);break; case 3: printf(three);break; case 4: printf(four);break; case 5: printf(five);break; case 6: printf(six);break; case 7 : printf(seven);break; case 8 : printf(eight);break; case 9 : printf(nine);break; retu

8、rn 0; (二) #include #define N 500 int main() int m,i,aN,n; scanf(%d,&m); i=0; if(m=0) printf(zero); else while(m!=0) ai=m%10; i+; m=m/10; n=i-1; for(i=n;i=0;i-) if(i!=0) switch(ai) case 0: printf(zero);break; case 1: printf(one);break; case 2: printf(two);break; case 3: printf(three);break; case 4: p

9、rintf(four);break; case 5: printf(five);break; case 6: printf(six);break; case 7 : printf(seven);break; case 8 : printf(eight);break; case 9 : printf(nine);break; else switch(ai) case 0: printf(zero);break; case 1: printf(one);break; case 2: printf(two);break; case 3: printf(three);break; case 4: pr

10、intf(four);break; case 5: printf(five);break; case 6: printf(six);break; case 7 : printf(seven);break; case 8 : printf(eight);break; case 9 : printf(nine);break; return 0; 三、将字符串中的小写字母转换成大写字母题目描述 给定一个字符串,将其中所有的小写字母转换成大写字母 输入 一个字符串 输出 将输入的字符串中所有小写字母转换成大写字母后的字符串 样例输入 helloworld123Ha 样例输出 HELLOWORLD123

11、HA 例:(一) #include #define N 200 int main() int i; char c,strN; gets(str); i=0; while(stri!=0) if(stri=a&stri=z) stri=stri-32; i+; puts(str); return 0; 例(二) #include #include #define N 500 int main() char aN; int i,n; scanf(%s,a); n=strlen(a); for(i=0;i=a & ai=z) ai=ai-32; an=0; printf(%s,a); return

12、0; 四、最长最短单词 输入1行单词(不多于200个单词),空格和逗号都是单词间的间隔,试输出第1个最长的单词和第1个最短单词。 如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。 输入 一行单词,空格和逗号都是单词间的间隔 输出 两行输出 第1行,第一个最长的单词 第2行,第一个最短的单词 样例输入 I am studying Programming language C in Nanjing University of Information and Technology 样例输出 Programming #include #include char str4000; char

13、 out200200; int length200; int main(void) gets(str); int i,j=0,k=0,n=strlen(str); for(i=0;in;i+) if(stri= |stri=,) outjk=0; lengthj=strlen(outj); j+; k=0; continue; outjk+=stri; int max=0,min=0; for(i=1;ij;i+) if(lengthmaxlengthi) min=i; puts(outmax); puts(outmin); return 0; 五、计算绩点 题目描述 学校对本科生的成绩施行平

14、均学分绩点制(GPA)。将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。 曾经使用的规定如下: 实际成绩 绩点 90-100 4.0 85-89 3.7 82-84 3.3 78-81 3.0 75-77 2.7 72-74 2.3 68-71 2.0 64-67 1.5 60-63 1.0 60以下 0 1一门课程的学分绩点=该课绩点*该课学分 2总评绩点=所有学科绩点之和/所有课程学分之和 现要求你编写程序求出某人A的总评绩点(GPA)。 输入 第一行 总的课程数n(n10); 第二行 相应课程的学分(两个学分间用空格隔开); 第三行 对应课程的实际得分; 此处输入的所有数字

15、均为整数。 输出 输出有一行,总评绩点,精确到小数点后2位小数。(printf(%.2f,GPA);) 样例输入 5 4 3 4 2 3 91 88 72 69 56 样例输出 2.52 #include #include int main() int n,i; float a10,c10,b10,sum=0,GPA,d; scanf(%d,&n); for(i=0;i=n-1;i+) scanf(%f,&ai); for(i=0;i=90) ci=4.0; else if(bi=85) ci=3.7; else if(bi=82) ci=3.3; else if(bi=78) ci=3.0;

16、 else if(bi=72) ci=2.3; else if(bi=68) ci=2.0; else if(bi=64) ci=1.5; else if(bi=60) ci=1.0; else bi=0; for(i=0;i=n-1;i+) sum+=ai*ci; for(i=0;i=n-1;i+) d+=ai; GPA=sum/d; printf(%.2f,GPA); return 0; 六、 按要求排序 输入 第一行为一个整数N(1=N=1000) 第二行为N个绝对值不超过10000的整数,表示需要排序的序列输出 输出N行,为N个整数按升序排序后的序列样例输入 6 100 201 6 8

17、 10 99 样例输出 6 8 10 99 100 201 提示 这N个数需要随机产生 例:(一) #include #define N 1000 int main() int aN; int n,i,j,temp; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); for(j=0;jn-1;j+) for(i=0;iai+1) temp=ai; ai=ai+1; ai+1=temp; for(i=0;in;i+) printf(%d ,ai); printf(n); return 0; 例(二) #include int main() int i,j,m

18、,n,a1000; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); for(j=0;jn-1;j+) for(i=0;iai+1) m=ai; ai=ai+1; ai+1=m; for(i=0;in;i+) printf(%d ,ai); return 0; 七、计算多项式的值 题目描述 多项式f(x) = ax3 + bx2 + cx + d 输入 输入仅一行,分别是x,及参数a、b、c、d的值,每个数都是双精度浮点数。 输出 输出也仅一行,f(x)的值,保留小数点后7位。 样例输入 2.31 1.2 2 2 3 样例输出 33.0838692 提示

19、使用printf(%.7lf, .)实现保留小数点后7位。 #include int main() double x,a,b,c,d,y; scanf(%lf%lf%lf%lf%lf,&x,&a,&b,&c,&d); y=a*x*x*x+b*x*x+c*x+d; printf(%.7lf,y); return 0; 例(二) #include double f(double x,double a,double b,double c,double d); int main() double x,a,b,c,d,e; scanf(%lf %lf %lf %lf %lf,&x,&a,&b,&c,&d

20、); if(x=0.0) printf(input error); else e=f(x,a,b,c,d); printf(%.7lf,e); return 0; double f(double x,double a,double b,double c,double d) double e,p=1.0,g; int i; for(i=0;i3;i+) p=p*x; g=x*x; e=a*p+b*g+c*x+d; return e; 八、计算两个分数的和 题目描述 输入两个分数,形式如1/2,计算它们的和,以分数形式输出 输入 第一行为第一个分数第二行为第二个分数 输出 两个分数的和 样例输入

21、1/2 3/4 样例输出 5/4 #include int main() int x,y,a,b,m,n,temp,r,p,t,z; scanf(%d/%d,&x,&y); scanf(%d/%d,&a,&b); m=x*b+y*a;z=m; n=y*b;t=n; if(nm) temp=n; n=m; m=temp; while(m!=0) r=n%m; n=m; m=r; p=n; printf(%d/%d,z/p,t/p); return 0; 九、登山 五一到了,NUIST-ACM队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号

22、都要大于前一个浏览景点的编号。同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了。队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么? 输入 Line 1: N (2 = N = 1000) 景点数 Line 2: N个整数,每个景点的海拔 输出 最多能浏览的景点数 样例输入 8 186 186 150 200 160 130 197 220 样例输出 4 例 #include int f(int a1000,int n); int main() int n,a1000,i,m; scanf(%d,&n); f

23、or(i=0;i0;m-) for(i=1;iai-1) j+; for(i=m-1;in-1;i+) if(aiai+1) j+; bn-m=j; j=1; s=b0; for(i=1;in;i+) if(sbi) s=bi; return s; 十、 计算平均年龄 例:(一) #include int main() int n,i,sum,age; double num; scanf(%d,&n); for(i=0,sum=0;in;i+) scanf(%d,&age); sum+=age; num=(double)sum/n; printf(%.2f,num); return 0; 例(二) #include int main() int n,m,i; float b,a=0.0; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&m); a=a+m; b=a/n; printf(%.2f,b); return 0; 十一、数圈 以1为中心,用2,3,。,n的数字围绕着

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1