首页 > 编程语言 >算法竞赛经典入门(第2版)习题1

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

时间:2024-02-16 17:56:59浏览次数:37  
标签:main 入门 int scanf d% 算法 printf 习题 include

目前在准备一个竞赛,头绪并不是很清楚,根据知乎的推荐入了一本书《算法竞赛入门经典》(第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;
}

 

标签:main,入门,int,scanf,d%,算法,printf,习题,include
From: https://www.cnblogs.com/LCGJ/p/18017331

相关文章

  • 自适应辛普森法从入门到进门
    前言学数学学的。simpson背景我们要计算这样一个式子:\[\int_l^rf(x)\textdx\]显然计算机是很难把柿子推出来的。函数的拟合对于一个奇怪的函数,为了对其求导,我们可以用一个图像近似且容易求导的函数来替代,这个过程叫做拟合。这里我们用二次函数来替代,那么有:\[\beg......
  • 数论从入门到进门
    gcd朴素欧几里得(辗转相除法)这一节我们默认:\(a,b\in\mathbb{Z}\)对于求解\(\gcd(a,b)\)需要用朴素欧几里得定理。\[\gcd(a,b)=\gcd(b,a\bmodb)\]gcd\(\gcd\)为\(\text{greatestcommondivisor}\)的缩写,即最大公约数。(或称最大公因数)对于\(\gcd\)函数,有以下......
  • 多项式从入门到进门
    多项式全家福多项式一个以\(x\)为变量的多项式定义在一个代数域\(F\)上,将函数\(A(x)\)表示为形式和:\[A(x)=\sum\limits_{i=0}^{n-1}a_ix^i\]我们称\(a_0,a_1,\cdots,a_n\)为多项式的系数,所有系数都属于数域\(\mathbbF\)。如果一个多项式的最高次的非零系数是\(k......
  • 生成函数从入门到进门
    引入先看下面这个例子:\[(1+a_1x)\times(1+a_2x)\times\cdots\times(1+a_nx)\]拆括号得:\[1+(a_1+a_2+\cdots+a_n)x+(a_1a_2+a_1a_3+\cdots+a_{n-1}a_n)x^2+\cdots+(a_1a_2\cdotsa_n)x^n\]其中\(x^2\)的系数包含了从\(n\)个元素\(\{a_1,a_2,\cdots,a_n\}\)中选取两个的......
  • 概率期望从入门到进门
    概率的线性性定义:\(\mathbb{E}(X)=\sum_i\timesP(X=i)\)。其中\(x\)为变量。线性性\[\begin{aligned}\mathbb{E}(aX+bY)&=\sumi\timesP(aX+bY=i)\\&=\sumi\sum_j\sum_k[j+k=i]P(aX=j)P(bY=k)\\&=\sum_j\sum_k(j+k)P(aX=j)\cdotP(bY=k)\\&......
  • 算法第一课:复杂度引入
    算法复杂度算法复杂度分两种,时间复杂度和空间复杂度。分别代表了算法的用时,以及算法所占用的内存空间。复杂度越小,运行效率越高。复杂度表示法一般用大写字母\(O\)表示,称为大\(O\)表示法。比如\(O(n)\),\(O(n^2)\)等。这里的\(n\)代表了算法的输入规模,比如数组的长度,链......
  • 读十堂极简人工智能课笔记03_遗传算法与进化
    1. 寻找正确答案1.1. 卡尔·西姆斯1.1.1. 计算机图形艺术家和研究者1.1.2. 演示过数字进化之创造性和新颖性的先驱1.1.3. 1994年1.1.3.1. 创造一批能游泳、走路、跳跃,甚至互相竞争的虚拟动物震惊了整个科学界1.1.3.2. 它们的人工大脑却是个极其复杂的网络,信息经由传......
  • 基于双树复小波变换和稀疏表示的多光谱和彩色图像融合算法matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本MATLAB2022a 3.算法理论概述     基于双树复小波变换(Dual-TreeComplexWaveletTransform,DT-CWT)和稀疏表示的多光谱和彩色图像融合算法是一种先进的图像融合技术,旨在将多光谱图像(MultispectralImages,MSI)和彩......
  • HydroOJ 从入门到入土(13)批量修改题号前缀
    题库的管理,无论是用前缀来分组,还是用域来分组,都有不好管理的地方,尤其是题号。有的时候导入了一堆题,导入完发现题号不是自己想要的,但删起来很麻烦,一个一个改更不现实,真是欲哭无泪。本文主要记录了一次批量修改题号前缀的过程,仅供参考。修改中涉及数据库操作,修改前一定要现在虚......
  • 【算法】006_图
    图的表示图的表示方法有很多种,如果遇到不同的表示方法,可以转换成自己最常用的那一种publicclassGraph{publicHashMap<Integer,Node>nodes;//点集publicHashSet<Edge>edges;//边集publicGraph(){}publicGraph(HashMap<Integer,Node>node......