西工大POJ100题全新.docx
- 文档编号:23037265
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:106
- 大小:51.79KB
西工大POJ100题全新.docx
《西工大POJ100题全新.docx》由会员分享,可在线阅读,更多相关《西工大POJ100题全新.docx(106页珍藏版)》请在冰豆网上搜索。
西工大POJ100题全新
1·计算A+B
2·圆及圆球等的相关计算
3·计算成绩
4·找最大数
5·找幸运数
6·奖金发放
7·出租车费
8·是该年的第几天
9·成绩转换
10·求建筑高度
11·区间内素数
12·计算π
13·两个整数之间所有的素数
14·最次方数
15·自然数立方的乐趣
16·五猴分桃
17·完全数
18·二分求根
19·你会存钱吗?
20·级数和
21·幸运数字7
22·粒子裂变
23·特殊整数
24·最大乘积
25·解不等式
26·危险的组合
27·子序列的和
29·探索合数世纪
30·韩信点兵
31·亲和数
32·高低交换
33·循环移位
35·组合数
36·积分计算
37·数据加密
38·获取指定二进制位
39·ACKERMAN
40·不会吧,又是A+B
41·平均值函数
42·插入排序
43·一维数组赋值
44·右下角
45·右上角
46·山迪的麻烦
47·冒泡排序
48·恐怖水母
49·左上角
50·一维数组加法
51·字符串排序
52·字符串左中右
53·文章统计
54·找出数字
55·字符串比较
56·THECLOCK
57·合并字符串
58·特殊要求的字符串
59·字符串逆序
60·COINTEST
61·小型数据库
62·单词频次
65·检测位图长宽
67·子字符串替换
68·复数
69·字符串加密编码
70·重组字符串
71·大数除法
72·创建与遍历职工链表
73·大数加法
74·大数减法
75·链表节点删除
76·链表动态增长或缩小
77·大数乘法
78·精确乘幂
80·火车站
81·操场训练
82·HAILSTONE
84·阶乘合计
85·王的对抗
86·三点顺序
87·公园喷水器
88·勇闯天涯
89·不屈的小蜗
90·THERATIOOFGAINERSTOLOSERS
91·GRAVEYARD
92·ARITHMETICPROGRESSIONS
93·SCORING
94·HOUSEBOAT
97·BEE
98·CHECKSUMALGORITHM
99·Hanoi2
100·Specializednumber
1·计算A+B
#include
intmain()
{
inta,b,sum;
scanf("%d%d",&a,&b);
sum=a+b;
printf("%d",sum);
}
2·圆及圆球等的相关计算
#include
intmain()
{
floatr,h,l,s,sq,vq,vz,pi=3.141592653;
scanf("%f%f",&r,&h);
l=2*pi*r;
s=pi*r*r;
sq=4*pi*r*r;
vq=4.0/3*pi*r*r*r;
vz=pi*r*r*h;
printf("%.2f\n%.2f\n%.2f\n%.2f\n%.2f\n",l,s,sq,vq,vz);
return0;
}
3·计算成绩
#include
intmain()
{
floata,b,c,sum,ave;
scanf("%f%f%f",&a,&b,&c);
sum=a+b+c;
ave=sum/3.0;
printf("%.6f\n%.6f",sum,ave);
return0;
}
4·找最大数
#include
intmain()
{
inta,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a
if(a printf("%d",a); return0; } 5·找幸运数 #include intmain() { inti,j,a; scanf("%d",&a); i=0; j=a; while(j) { i=10*i+(j%10); j=j/10; } if(i==a) printf("yes\n"); elseprintf("no\n"); return0; } 6·奖金发放 #include intmain() { floatl; scanf("%f",&l); if(l<=10)l=l*0.1; elseif(l<=20)l=10*0.1+(l-10)*0.075; elseif(l<=40)l=10*0.1+10*0.075+(l-20)*0.05; elseif(l<=60)l=10*0.1+10*0.075+20*0.05+(l-40)*0.03; elseif(l<=100)l=10*0.1+10*0.075+20*0.05+20*0.03+(l-60)*0.015; elsel=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(l-100)*0.01; printf("%.6f",l); return0; } 7·出租车费 #include #include intmain() { floata,n,t; scanf("%f",&a); if(a<=2)n=7; elseif(a<=15){ t=a-floor(a); if(t==0)n=7+(floor(a)-2)*1.5; elsen=7+(floor(a)-1)*1.5; } else{ t=a-floor(a); if(t==0)n=7+13*1.5+(floor(a)-15)*2.1; elsen=7+13*1.5+(floor(a)-14)*2.1;} printf("%.6f",n); return0; } 8·是该年的第几天 #include intmain() { inty,m,d,n,a; scanf("%d-%d-%d",&y,&m,&d); if((y%4==0&&y%100! =0)||(y%400==0))a=29; elsea=28; switch(m) { case1: n=d;break; case2: n=31+d;break; case3: n=31+a+d;break; case4: n=62+a+d;break; case5: n=92+a+d;break; case6: n=123+a+d;break; case7: n=153+a+d;break; case8: n=184+a+d;break; case9: n=215+a+d;break; case10: n=245+a+d;break; case11: n=276+a+d;break; case12: n=306+a+d;break; } printf("%d",n); return0; } 9·成绩转换 #include intmain() { intn; scanf("%d",&n); if(n<60)printf("E\n"); elseif(n<70)printf("D\n"); elseif(n<80)printf("C\n"); elseif(n<90)printf("B\n"); elseprintf("A\n"); return0; } 10·求建筑高度 #include intmain() { floatx,y,a,b,c,d; scanf("%f,%f",&x,&y); a=(x-2)*(x-2)+(y-2)*(y-2); b=(x-2)*(x-2)+(y+2)*(y+2); c=(x+2)*(x+2)+(y-2)*(y-2); d=(x+2)*(x+2)+(y+2)*(y+2); if(a<=1||b<=1||c<=1||d<=1)printf("10"); elseprintf("0"); return0; } 11·区间内素数 #include #include intmain() { inti,n=500,cnt=0,sum=0; while(n<=800){ for(i=2;i<=n-1;i++) if(n%i==0)break; if(i==n)cnt=cnt+1,sum=sum+pow((-1),cnt)*n; n=n+1; } printf("%d%d",cnt,sum); return0; } 12·计算π #include #include intmain() { ints=1; doublepi=0,n=1,t=1; while(fabs(t)>1e-6) pi=pi+t,n=n+2,s=-s,t=s/n; pi=pi*4; printf("%.6f",pi); return0; } 13·两个整数之间所有的素数 #include intmain() { inta,b,t,i; scanf("%d%d",&a,&b); if(a>b)t=a,a=b,b=t; while(a<=b){ for(i=2;i<=a-1;i++) if(a%i==0)break; if(i==a)printf("%d",a); a++; } return0; } 14·最次方数 #include intmain() { intx,a,m=1,n=1; scanf("%d%d",&x,&a); while(m<=a){ n=n*x; n=n%1000; m=m+1; } printf("%d",n); return0; } 15·自然数立方的乐趣 #include intmain() { intn,a,i,t; scanf("%d",&n); a=n*(n-1)+1; t=n*n*n; printf("%d*%d*%d=%d=",n,n,n,t); for(i=1;i printf("%d+",a); a=a+2;} printf("%d",a); return0; } 16·五猴分桃 #include intdivides(intn,intm) { if(n/5==0||n%5! =1)return0; if(m==1)return1; returndivides(n-n/5-1,m-1); } intmain() { intn,a; for(n=1;;n++) if(divides(n,5)){ printf("%d",n);break; } a=(((((n-1)*4/5-1)*4/5-1)*4/5-1)*4/5-1)*4/5; printf("%d",a); return0; } 17·完全数 #include intmain() { inti,n,sum=0; for(n=2;n<1000;n++){ sum=0; for(i=1;i<=n/2;i++){ if(n%i==0)sum=sum+i;} if(sum==n){printf("%d=",n); for(i=1;i if(n%i==0)printf("%d+",i); i=n/2; printf("%d\n",i);} } return0; } 18·二分求根 #include #include doublefun(doublex){return2*x*x*x-4*x*x+3*x-6;} doubleroot(doublea,doubleb,doublee) { doublex1,x2,y1,x,y; x1=a; x2=b; do{ x=(x1+x2)/2; y=fun(x); y1=fun(x1); if((y<0&&y1<0)||(y>0&&y1>0)) x1=x; else x2=x; /*endif*/ }while(fabs(y)>e); returnx; } intmain(void) { doublem,n; scanf("%f%f",&m,&n); doublex=root(m,n,1e-8); printf("%.2f\n",x); return0; } 19·你会存钱吗? #include #include intmain() { inti8,i5,i3,i2,i1,n8,n5,n3,n2,n1; floatmax=0,term; for(i8=0;i8<3;i8++)/*穷举所有可能的存款方式*/ for(i5=0;i5<=(20-8*i8)/5;i5++) for(i3=0;i3<=(20-8*i8-5*i5)/3;i3++) for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++) { i1=20-8*i8-5*i5-3*i3-2*i2; term=2000.0*pow((double)(1+0.0063*12),(double)i1) *pow((double)(1+2*0.0063*12),(double)i2) *pow((double)(1+3*0.0069*12),(double)i3) *pow((double)(1+5*0.0075*12),(double)i5) *pow((double)(1+8*0.0084*12),(double)i8); /*计算到期时的本利合计*/ if(term>max) { max=term;n1=i1;n2=i2;n3=i3;n5=i5;n8=i8; } } printf("%d",n8); printf("%d",n5); printf("%d",n3); printf("%d",n2); printf("%d\n",n1); printf("%.2f",max); /*输出存款方式*/ } 20·级数和 #include #include intmain() {intj,t,i,a,n; doubles=0; scanf("%d",&n); j=-1;i=1;t=1; for(a=0;a {t=t*2;j*=-1;i*=-1;s=s+j*t/((t+i)*(2*t+j)+0.0);} printf("%.6lf\n",s); return0; } 21·幸运数字7 #include intmain() { intn,i; scanf("%d",&n);//n不大于30000 if(n<7); else{ for(i=7;i<=n;i++) if(i%7==0||i%10==7||i/1000%10==7||i/100%10==7||i/10%10==7) printf("%d",i); } return0; } 22·粒子裂变 #include intmain() { intn[100],m[100],t,i; n[0]=1; m[0]=0; scanf("%d",&t); for(i=1;i<=t;i++){ n[i]=m[i-1]; m[i]=3*n[i-1]+2*m[i-1]; } printf("%d%d",n[t],m[t]); return0; } 23·特殊整数 #include #include #include intmain() { intm,n,g=0,s=0,i,j,x,x1,x2; scanf("%d%d",&m,&n); x1=(int)(pow(10.0,n)/10); x2=(int)(pow(10.0,n)-1); for(i=x1;i<=x2;i++) { j=i; do{ x=j%10; if(x==m) { if(i%m! =0) g++,s=s+i;break; } elsej=j/10; }while(j! =0); } printf("%d%d\n",g,s); return0; } 24·最大乘积 #include intmain() { intA[18],i,j,n,x,y=0; scanf("%d",&n); for(i=0;i scanf("%d",&A[i]); for(i=0;i { x=1; for(j=i;j { x=x*A[j]; if(x>y)y=x; } } if(y>0)printf("%d",y); elseprintf("-1"); return0; } 25·解不等式 #include intmain() { inta,b; floatn,s=0,sum=0; scanf("%d%d",&a,&b); for(n=1;sum<=a;n++){ s=s+1/n; sum=sum+1/s; } printf("%.0f",n=n-1); for(n;sum<=b;n++){ s=s+1/n; sum=sum+1/s; } printf("%.0f",n=n-1); return0; } 26·危险的组合 #include #include intmain() { intn; intf(int); scanf("%d",&n); printf("%d",f(n)); return0; } intf(intn) { inta; if(n==1||n==2) a=0; elseif(n==3) a=1; elseif(n==4) a=3; elsea=f(n-1)*2+pow(2,n-4)-f(n-4); returna; } 27·子序列的和 #include #include intmain() { intm,n,i;//n doublea,sum=0; scanf("%d%d",&n,&m); for(i=n;i<=m;i++){ a=pow(i,2.0); sum=sum+1/a; } printf("%.5lf",sum); return0; } 29·探索合数世纪 #include intmain() { intn,i=500,s,x,count=0; longj,k; scanf("%d",&n); while(count { s=0; for(j=i*100-99;j { x=0; for(k=3;k*k<=j;k+=2) if(j%k==0) { x=1; break; } s+=x; } if(s==50) count++; i++; } printf("%d%d",j-101,j-2); return0; } 30·韩信点兵 include intmain() { inta,b,c,n;//a<3,b<5,c<7 scanf("%d%d%d",&a,&b,&c); for(n=10;n<=100;n++){ if((n-a)%3==0&&(n-b)%5==0&&(n-c)%7==0) break; } if(n>100)printf("-1"); elseprintf("%d",n); return0; } 31·亲和数 #include intfun(inta) { intb=0,i; for(i=1;i<=a/2;i++) { if(a%i==0) b+=i; } returnb; } intmain() { inta,b; scanf("%d%d",&a,&b); if(fun(a)==b&&fun(b)==a) printf("YES"); elseprintf("NO"); return0; } 32·高低交换 #include inlineintxchg(unsignedcharn) { charleft=n<<4; charright=n>>4; returnleft+right; } intmain() { intn; scanf("%d",&n); n=xchg(n); printf("%d",n); return0; } 33·循环移位 #include intmove(intvalue,intn) { if(n==0)returnvalue; elseif(n<0) { n=-n; value=(value< } elsevalue=(value>>n)|(value<<(32-n)); returnvalue; } intmain() { intvalue,n; scanf("%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西工大 POJ100 全新