西工大C语言POJ作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A024、危险的组合
#include
#include
int cnt(int n)
{
if(n<3)
return 0;
if(n==3)
return 1;
return 2*cnt(n-1)+pow(2,n-4)-cnt(n-4); }
int main()
{
int n,Cnt;
scanf("%d",&n);
Cnt=cnt(n);
printf("%d\n",Cnt); return 0;
}
A029、特殊整数
#include
{int m,n,c,j,f[10];
long d,k,g,s,t;
scanf("%d%d",&m,&n);
t=1;
for (k=1;k<=n-1;k++)
t=t*10;
g=0; s=0;
for (k=t;k<=10*t-1;k++)
{d=k;
for(j=0;j<=9;j++) f[j]=0;
for(j=1;j<=n;j++)
{c=d%10;f[c]+=1;
d=d/10;
}
if(f[m]>0&&k%m>0)
{g++;s+=k;
}
}
printf("%ld %ld",g,s);
}
A027、最大乘积
#include
#include
int main()
{
int a[18],x,n=0,m,i,j;
scanf("%d",&m);
for(i=0;i scanf("%d",&a[i]); for(i=0;i { x=1; for(j=i;j { x=x*a[j]; if(x>n) n=x; } } if(n>0) printf("%d\n",n); else printf("-1\n"); return 0; } A022、韩信点兵 #include int main() {int a,b,c,i; int m=1; scanf("%d%d%d",&a,&b,&c); for(i=10;i<=100;i++) {if(i%3==a&&i%5==b&&i%7==c) {m=0; break; } } if(m) printf("%d",-1); else printf("%d",i); return 0; } A035、ACKERMAN #include int ack(int m,int n) { if(m==0) return n+1; else if(n==0) ack(m-1,1); else ack(m-1,ack(m,n-1)); } int main() { int m,n; scanf("%d%d",&m,&n); printf("%d",ack(m,n)); return 0; } A037、不会吧,又是A+B #include int main() { int h,m,s,h1,m1,s1,a,b,c; scanf("%d %d %d %d %d %d",&h,&m,&s,&h1,&m1,&s1); a=h+h1; b=m+m1; c=s+s1; while(c>=60) {b++; c=c-60; while(b>=60) { a++; b=b-60; } } printf("%d %d %d",a,b,c); return 0; } A038、数据加密 #include int main() {int a,b,c,d,m,n,a1,b1,c1,d1; scanf("%d",&m); if(m>=1000) {a=m/1000; b=(m-a*1000)/100; c=(m-a*1000-b*100)/10; d=m-a*1000-b*100-c*10; a1=(a+5)%10; b1=(b+5)%10; c1=(c+5)%10; d1=(d+5)%10; n=d1*1000+c1*100+b1*10+a1; printf("%d",n); } else return 0; } A032、最小整数 #include #define fceil(x) int(x)+1 #include int main() { int y; double x; scanf("%lf",&x); if(x>=0) y=fceil(x); else y=fceil(x)-1; printf("%d",y); return 0; } A045、插入排序