算法竞赛经典入门(第2版)习题1

目前在准备一个竞赛,头绪并不是很清楚,根据知乎的推荐入了一本书《算法竞赛入门经典》(第2版)...

下面是写的例题和习题答案也算是简单记录一下学习过程吧。

//三位数反转

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    printf("%d%d%d\n",n%10,n/10%10,n/100);
    return 0;
}

#include<stdio.h>
int main()
{
    int n,m;
    scanf("%d",&n);
    m=(n%10)*100+(n/10%10)*10+(n/100);
    printf("%03d\n",m);
    return 0;
}

//交换变量

#include<stdio.h>
int main()
{
    int a,b,t;
    scanf("%d%d",&a,&b);
    t=a;
    a=b;
    b=t;
    printf("%d %d\n",a,b);
    return 0;
}
#include<stdio.h> 
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    a=a+b;
    b=a-b;
    a=a-b;
    printf("%d %d\n",a,b);
    return 0;
}
#include<stdio.h>
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d %d\n",b,a);
    return 0;
}

//鸡兔同笼

#include<stdio.h>
int main()
{
    int a,b,n,m;
    scanf("%d%d",&n,&m) ;
    a=(4*n-m)/2;
    b=n-a;
    if(m%2==1||a<0||b<0)
    printf("No answer\n");
    else
    printf("%d %d\n",a,b);
    return 0;
 } 

//三整数排序

#include<stdio.h>
 int main()
 {
     int a,b,c;
     scanf("%d%d%d",&a,&b,&c);
     if(a<=b&&b<=c)
     printf("%d %d %d\n",a,b,c);
     else if(a<=c&&c<=b)
     printf("%d %d %d\n",a,c,b);
     else if(b<=a&&a<=c)
     printf("%d %d %d\n",b,a,c);
     else if(b<=c&&c<=a)
     printf("%d %d %d\n",b,c,a);
    else  if(c<=a&&a<=b)
     printf("%d %d %d\n",c,a,b);
     else
     printf("%d %d %d\n",c,b,a);
     return 0;
 }
#include<stdio.h>
int main()
{
    int a,b,c,t;
    scanf("%d%d%d",&a,&b,&c);
    if(a>b)
    {
        t=a;
        a=b;
        b=t;
    }
    if(a>c)
    {
    t=a;
    a=c;
    c=t;
    }
    if(b>c)
    {
        t=b;
        b=c;
        c=t;
    }
printf("%d %d %d\n",a,b,c);
  return 0;
}

 

//平均数(average)

#include<stdio.h>
int main()
{
int a,b,c;
double t;
scanf("%d%d%d",&a,&b,&c);
t=(a+b+c)/3;
printf("%.3f",t) ;
    return 0;

//温度(temperature)

#include<stdio.h>
int main()
{
    double f,c;
    scanf("%lf",&f); 
    c=5*(f-32)/9;
    printf("%.3f",c);
    return 0;
    
}

//连续和 (sum)

#include<stdio.h>
int main()
{
    int i,n,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    sum+=i;
    printf("%d",sum);
    return 0; 
}

//正弦和余弦

#include<stdio.h>
#include<math.h>
int main() 
{
    int n;
    scanf("%d",&n);
    double radians=n*M_PI/180.0;//在(math.h)中引用M_PI 
    printf("%f,%f",sin(radians),cos(radians));
    return 0;
}

//打折(discount)

#include<stdio.h> 
int main()
{
    int a;
    scanf("%d",&a);
    if(95*a<300)
    printf("%.2f",(double)95*a);
    else
    printf("%.2f",(double)95*a*0.85);
    return 0;
}

//三角形(triangle)

#include<stdio.h> 
int main() 
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a+b>c&&a+c>b&&b+c>a)
    {
        if((a*a)+(b*b)==(c*c)||(b*b)+(c*c)==(a*a)||(a*a)+(c*c)==(b*b))
        {
            printf("yes");
        }
        else
        printf("no");
    }
    else
    printf("not a triangle");
    return 0;
}

//年份(year) 

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    if(a%4==0&&a%100!=0||a%400==0)
    printf("yes");
    else
    printf("no");
    return 0;
}

 

posted @ 2024-02-16 17:43  ZDhr  阅读(19)  评论(0编辑  收藏  举报