• 蓝桥软件竞赛 预选赛 2014-01-21 22:54 206人阅读 评论(0) 收藏


    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/

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    Java 工程名上有个红色叹号
    TestNG 入门教程
    字典序问题
    统计数字问题
    sniffer 简介
    【转】IE浏览器快捷键大全
    批处理 延时不完全总结【转】
    批处理(Batch)---批处理脚本。
    windows系统命令行
    计算机网络
  • 原文地址:https://www.cnblogs.com/you-well-day-fine/p/4671671.html
Copyright © 2020-2023  润新知