1、把一个二进制的串转换为十进制整数
#include<stdio.h> #include<math.h> int main(){ long long n; long long k=0; long long m=0; while(scanf("%lld",&n)!=EOF){ while(n){ k=k+(n%10)*pow(2,m++); n=n/10; } printf("%lld ",k); k=m=0; } return 0; }
2、判决素数个数
#include<stdio.h> #include<math.h> int pd(int n){ if(n<=1) return 0; if(n<3) return 1; int k; for(k=2;k<=sqrt(n);k++){ if(n%k==0)return 0; } return 1; } int main(){ int a,b,c,d; scanf("%d%d",&a,&b); if(b>a){ c=b; b=a; a=c; } c=0; for(d=a;d>=b;d--){ if(pd(d)){ c++; } } printf("%d ",c); return 0; }
3、数字求和
#include<stdio.h> int main(){ int num[10]; int i,m=0; for(i=0;i<=5;i++){ scanf("%d",&num[i]); if((i>0)&&(num[i]<num[0])){ m+=num[i]; } } printf("%d ",m); return 0; }
4、字符串排序
#include<stdio.h> #include<string.h> char str[10][20]; char s[20]; int main(){ int n,m; for(n=0;n<5;n++){ scanf("%s",str[n]); } for(n=0;n<5;n++){ for(m=n+1;m<5;m++){ if(strcmp(str[n],str[m])>1){ strcpy(s,str[m]); strcpy(str[m],str[n]); strcpy(str[n],s); } } } for(n=0;n<5;n++){ printf("%s ",str[n]); } return 0; }
5、奇偶排序
#include<stdio.h> int main(){ int num[1000000]={0}; int k,n; for(k=0;k<10;k++){ scanf("%d",&n); num[n]=1; } for(k=0;k<1000000;k++) if((k%2==1)&&(num[k]==1)) printf("%d ",k); for(k=0;k<1000000;k++) if((k%2==0)&&(num[k]==1)) printf("%d ",k); return 0; }
6、球弹跳高度计算
#include<stdio.h> int main(){ int k; double d=0; double sum=0; scanf("%lf",&d); sum=d; for(k=0;k<9;k++){ sum+=d; d/=2; } printf("%lf ",sum); printf("%lf ",d/2); return 0; }
7、求最长字符串
#include<stdio.h> #include<string.h> int main(){ char str[1000][1000]; int n,id=0; scanf("%d",&n); id=n-1; while(n--){ scanf("%s",str[n]); if(strlen(str[n])>=strlen(str[id])){ id=n; } } printf("%s ",str[id]); return 0; }
8、1的个数
#include<stdio.h> int num(int k){ int d=0; while(k){ d+=(k%2); k=k/2; } return d; } int main(){ int n,m; scanf("%d",&n); while(n--){ scanf("%d",&m); printf("%d ",num(m)); } return 0; }
9、递归求和
#include<stdio.h> int dg(int k){ if(k==1) return 1; if(k>1) return k*k+dg(k-1); } int main(){ int n; scanf("%d",&n); printf("%d ",dg(n)); return 0; }
10、求一个数的小数部分
#include<stdio.h> #include<string.h> int pd(char s[]){ int i; for(i=0;i<strlen(s);i++){ if(s[i]=='.') return i; } return 0; } int main(){ char num[1000]; scanf("%s",num); int k=pd(num); int d; if(k){ for(d=k+1;d<strlen(num);d++){ printf("%c",num[d]); } } else{ printf("0"); } printf(" "); return 0; }
预选赛的题目:http://haut.openjudge.cn/train1/
版权声明:本文为博主原创文章,未经博主允许不得转载。