宝码良聚
感谢眼视光七年制2013级林川琦同学提供博客名,对其他参加征名活动的同学(徐明娜、李天坤、曲文镛)一并表示感谢
CODE1016
#include<stdio.h> int main(){ int y,m; scanf("%d %d",&y,&m); if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) printf("31\n"); else if(m==4||m==6||m==9||m==11) printf("30\n"); else if(y%4==0&&y%100!=0||y%400==0) printf("29\n"); else printf("28\n"); return 0; }
#include<stdio.h> int main(){ int y,m,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; scanf("%d%d",&y,&m); printf("%d\n",a[m]+(m==2 && (y%4==0 && y%100!=0 || y %400==0))); return 0; }
素数判断
#include<math.h> int Prime(int a){ for(int i=2;i<=sqrt(a);i++) if(a%i==0)return 0; return 1; }
求组合数
公式:C(n,m)=C(n-1,m-1)+C(n-1,m)
#include<stdio.h> int comb(int n,int m){ if(n==m || m==0)return 1; if(m==1)return n; return comb(n-1,m-1)+comb(n-1,m); } int main(){ printf("%d\n",comb(5,2)); return 0; }
CODE1151 回形阵

#include <stdio.h> int main(){ int n,i,j,k,a[30][30]; scanf("%d",&n); for(k=n;k>=0;k--){ for(i=n-k;i<=n+k;i++) for(j=n-k;j<=n+k;j++)a[i][j]=k; } for(i=0;i<=2*n;i++){ for(j=0;j<=2*n;j++)printf(" %d",a[i][j]); printf("\n"); } return 0; }
CODE1238
#include<stdio.h> #include<string.h> int main(){ char ss[1001]=" ",s[1000]; int i,num=0; gets(s); strcat(ss,s); for(i=1;i<strlen(ss);i++) if(ss[i]!=' ' && ss[i-1]==' ')num++; printf("%d\n",num); return 0; }
CODE1199
【解法1】
#include<stdio.h> #include<string.h> int main(){ char w[1000][20],s[20],c; int d,i,n=0,x1,x2; while(scanf("%s",s)){ strcpy(w[n],s); n++; if(s[strlen(s)-1]=='.')break; } w[n-1][strlen(w[n-1])-1]='\0'; scanf("%s",s); //for(i=0;i<n;i++)puts(w[i]); for(x2=0,i=0;i<n;i++)x2+=strlen(w[i]); for(i=0;i<n;i++) if(strcmp(w[i],s)==0)break; if(i<n)printf("%d\n",i+1);//found else printf("%d\n",x2); return 0; }
【解法2】
#include<stdio.h> #include<string.h> int main(){ char w[1000][20],s[20],c; int d,i,n=0,x1,x2; while(scanf("%s%c",s,&c)){ strcpy(w[n],s); n++; if(c=='\n')break; } w[n-1][strlen(w[n-1])-1]='\0'; scanf("%s",s); //for(i=0;i<n;i++)puts(w[i]); for(x2=0,i=0;i<n;i++)x2+=strlen(w[i]); for(i=0;i<n;i++) if(strcmp(w[i],s)==0)break; if(i<n)printf("%d\n",i+1);//found else printf("%d\n",x2); return 0; }
选择法排序
#include<stdio.h> #include<stdlib.h> #include<time.h> void sort(int a[],int n){ int i,j,k,t,m; for(i=0;i<n-1;i++){ m=a[i]; for(j=k=i;j<n;j++) if(a[j]<m){m=a[j];k=j;} t=a[i],a[i]=a[k],a[k]=t; } } int main(){ int i,a[10]; srand((unsigned) time(NULL)); for(i=0;i<10;i++)a[i]=rand()%100+1; for(i=0;i<9;i++)printf("%d ",a[i]); printf("%d\n",a[9]); sort(a,10); for(i=0;i<9;i++)printf("%d ",a[i]); printf("%d\n",a[9]); return 0; }
阶乘函数应用
#include<stdio.h> int fact(int n){ int s=1,i; for(i=2;i<=n;i++)s=s*i; return s; } int main(){ int a; scanf("%d",&a); printf("%d\n",fact(a)); return 0; }
Fabonacii数列函数写法
#include<stdio.h> int fab(int n){ if(n==1 || n==2)return 1; return fab(n-1)+fab(n-2); } int main(){ int n; scanf("%d",&n); printf("%d\n",fab(n)); return 0; }
jz1051【基础】约瑟夫问题
//我见过的最优雅的一段关于约瑟夫问题的代码,来自网络
#include <stdio.h> int main() { int m,n,a[15]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},j=0,i,s=0; scanf("%d %d",&m,&n); for(i=1;i<=m;) { s+=a[j]; if(s==n) { printf("%d\n",j+1); i++; s=0; a[j]=0; } j++; if(j==m)j=0; } }
//再小小改进
#include<stdio.h> int main(){ int m,n,a[15]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},j=0,t,s=0; scanf("%d%d",&m,&n); t=m; for(;;){ s+=a[j]; if(s==n){ printf("%d\n",j+1); t--; if(t==0)return 0; s=0; a[j]=0; } j=(j+1)%m; } }
jz1048 【基础】求序列中所有递增或递减子序列的个数并输出子序列
#include<stdio.h> int main(){ int a[20],x[20],n=0,i,j; for(i=0;i<10;i++)scanf("%d",&a[i]); x[n]=0; n++; for(i=1;i<=8;i++) if((a[i]-a[i-1])*(a[i]-a[i+1])>0){ x[n]=i;n++; } x[n]=9; printf("%d\n",n); // for(i=0;i<=n;i++)printf("%d ",x[i]); for(i=0;i<n;i++){ for(j=x[i];j<=x[i+1]-1;j++)printf("%d ",a[j]); printf("%d\n",a[x[i+1]]); } return 0; }

浙公网安备 33010602011771号