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\n",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\n",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\n",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\n",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\n",sum);
printf("%lf\n",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\n",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\n",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\n",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("\n");
return 0;
}
预选赛的题目:http://haut.openjudge.cn/train1/
版权声明:本文为博主原创文章,未经博主允许不得转载。