1、判断一个数是否是2的整数次幂
#include<stdio.h>
int fun(int n)
{
/* 输入n ,如果是2 的整数次幂,则返回1,否则返回0 */
for(;;)
{
if( n== 1 )
{
printf("是");
break;
}
else if( n%2 == 1 )
{
printf("不是");
break;
}
else
n=n/2;
}
}
int main()
{
int n=0;
scanf("%d",&n);
fun(n);
return 0;
}
2、题目描述:
在所有的爱好中,小B最热衷的是摄影,尤其是运动摄影,所以只要有时间,她就会出现在各种体育馆边上。一年一度的田径大赛
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,p,i;
printf("input num p:");
scanf("%d %d",&num,&p);
int *a = (int *)malloc(sizeof(int)*num);
int *b = (int *)malloc(sizeof(int)*num);
int min=0,max=100;
for(i=0;i<num;i++){
scanf("%d %d",&a[i],&b[i]);
if(a[i]<b[i]){
if(a[i]>min && a[i]<max)
min = a[i];
else if (b[i]<max && b[i]>min)
max = b[i];
else{
printf("%d",-1);
exit(0);
}
}
else if(a[i]>b[i]){
if(b[i]>min && b[i]<max)
min = b[i];
else if (a[i]<max && a[i]>min)
max = a[i];
else{
printf("%d",-1);
exit(0);
}
}
}
if(abs(p-max)>abs(p-min))
printf("%d",abs(p-min));
else
printf("%d",abs(p-max));
free(a);
free(b);
return 0;
}
解法二:
#include <stdio.h>
#include <stdlib.h>
int main(){
int n=0,x=0,i=0,temp=0,maxa=0,minb=0;
int *a;
int *b;
scanf("%d %d",&n,&x);
a =(int *)malloc(sizeof(int)*n);
b =(int *)malloc(sizeof(int)*n);
for(;i<n;i++)
{
scanf("%d %d",&a[i],&b[i]);
if(a[i]>b[i])
{
temp=a[i];
a[i]=b[i];
b[i]=temp;
}
if(i==0)
{
maxa=a[i];
minb=b[i];
continue;
}
else
{
if(maxa<a[i])
{
maxa=a[i];
}
if(minb>b[i])
{
minb=b[i];
}
}
}
if(maxa>minb)
{
printf("-1");
}
else
{
if(maxa>x)
{
printf("%d",maxa-x);
}
else
{
if(x>minb)
{
printf("%d",x-minb);
}
else
{
printf("0");
}
}
}
free(a);
free(b);
return 0;
}
![]()