算法竞赛入门经典_1.5_习题练习

easydots的博客园 easydots的博客园     2022-09-07     510

关键词:

1.温度问题

 

#include <stdio.h>

int main()
{
    double f, c;
    scanf("%lf", &f);
    c = 5*(f - 32)/9.0;
    printf("%.3lf\n", c);
    return 0;
}

 

运行结果:

2.平均数问题

#include<stdio.h>

int main()
{
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    double d = (a+b+c)/3.0;
    printf("%.3lf\n",d);
    return 0;
}

//保留三位小数%.3f

运行结果:

3.连续和问题

#include <stdio.h>

int main()
{
    int n=0, sum;
    while(n < 1 && scanf("%d", &n));
    sum = n*(1+n)/2;
    printf("%d\n", sum);
    return 0;
}

运行结果:

4.正弦和余弦问题

#include <stdio.h>
#include <math.h>
int main()
{
    const double pi = acos(-1.0); // pi使用acos(-1.0)求得M_PI不是ANSI C的标准
    int n =0;
    while( (n <1 || n > 359) && scanf("%d", &n) ); //1-359
    double th = n/180.0 * pi; //转换成弧度制
    printf("%lf %lf\n", sin(th), cos(th));
    return 0;
}

运行结果:

5.打折问题

#include <stdio.h>

int main()
{
    int n = 0;
    double amount = 0;
    while( n < 1 && scanf("%d", &n) );
    if(n*95 >= 300)
        amount = n*95*0.85;
    else
        amount = n*95;
    printf("%.2lf\n", amount);
    return 0;
}

运行结果:

6.三角形问题

#include <stdio.h>

int main()
{
    int a = 0, b = 0, c = 0;
    while( (a * b *c < 1 && (a<1 || b<1 || c<1)) &&( scanf("%d%d%d", &a, &b, &c ) <= 3))
    {
        fflush(stdin);
    };
    if(!(a+b > c && a+c > b && b+c > a))
        printf("not a triangle\n");
    else
    { 
    if(a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a)
        printf("yes\n");
    else
        printf("no\n");
    }
    return 0;
}

运行结果:

7.闰年问题

 

#include <stdio.h>

int main()
{
    int y = 0;
    while(y <1 && scanf("%d", &y) <= 1)
    {
        fflush(stdin);
    }

    if((y%4 == 0 && y%100!=0 )|| (y % 400 == 0) )
    {
        printf("yes\n");
    }
    else
    {
        printf("no\n");
    }
    return 0;
}

 

//闰年的条件
//4的倍数,但不是100的倍数
//或者是400的倍数

运行结果:

关于scanf控制用户输入问题请看笔者这篇随笔

http://www.cnblogs.com/ncgds/p/7102967.html

 

有时候不逼自己一把怎么知道自己不行?

 

算法竞赛入门经典_2_变量及其输入

代码://2017-6-19变量及其输入#include<stdio.h>#include<math.h>voidAAndB();voidCircleZtArea();intmain(){AAndB();CircleZtArea();return0;}voidAAndB(){inta,b;scanf("%d%d",&a,&b);//scanf("%d",a) 查看详情

算法竞赛入门经典_3.1_数组_逆序输出_开灯问题

又是新的一天,继续更新.今天进入了新的章节,数组和字符串1.逆序输出问题:先来看代码吧#include<stdio.h>//逆序输出2017-8-16#definemaxn105inta[maxn];intmain(intargc,char*argv[]){//inta[maxn];intx,n=0;while(scanf("%d",&x)==1)a[n++]=x;for(in 查看详情

算法竞赛入门经典_4_分支结构程序设计

1.4鸡兔同笼已知鸡和兔的总数量为n,总腿数为m.输入n和m,依次输出鸡的数目和兔的数目。#include<stdio.h>intmain(){//鸡兔同笼问题inta,b,m,n;scanf("%d%d",&m,&n);//m总腿数,n总个数a=(4*n-m)/2;b=n-a;if(m%2==1||a<0||b<0)printf("Noanswer!"); 查看详情

算法竞赛入门经典_6数据结构基础

*6.3 树和二叉树**小球下落问题 //小球下落问题/*有一棵二叉树,最大深度为D,且所有叶子的深度相同.所有节点从上到下从左到右编号为1,2,3,4,...,2^D-1.在节点1处放一小球,它会往下落.每个内节点上都有一个开关,初始全部关闭... 查看详情

算法竞赛入门经典习题2-10排列(permutation)

习题2-10     用1,2,3。....,9组成3个三位数abc。def和ghi,每一个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出全部解。#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(intargc,char*ar 查看详情

算法竞赛入门经典习题2-6排列(permutation)

暴力解法:1#include<stdio.h>2#include<stdlib.h>34intcompare(constvoid*a,constvoid*b);56intmain(intargc,char**argv){7inti,j,k;8intarr[9];9for(i=100;i<333;i++){10for(j=200;j<666;j++){11for( 查看详情

算法竞赛入门经典(刘汝佳)课后习题前三章答案

本文转载:第一章习题1-1#include <stdio.h>int main(){int a,b,c;double d;scanf("%d%d%d",&a,&b,&c);d=(double)(a+b+c);printf("%.3lf ",d/3.0);return 0;}习题1-2#include  查看详情

算法竞赛入门经典第二版第二章习题及思考题(代码片段)

enmmmmmm】 大部分好像除了最后一个思考题都很简单代码如下#include<iostream>#include<cstring>#include<cstdio>#include<cmath>intmain()/*for(inti=100;i<=999;i++)inta=i/100;intc=i%10;intb=(i-a*10 查看详情

算法竞赛-入门经典计算并输出1+2的值

1.练习目的:计算并输出1+2的值2.源码:1#include<stdio.h>2intmain()3{45printf("%d ",1+2);6return0;7}3.总结:略... 查看详情

《算法竞赛入门经典(第二版)》习题解答——第二章(代码片段)

文章目录一、习题2-1水仙花数(daffodil)二、习题2-2韩信点兵(hanxin)三、习题2-3倒三角形(triangle)四、习题2-4子序列的和(subsequence)五、习题2-5分数化小数(decimal)六、习题2-6排列࿰... 查看详情

《算法竞赛入门经典(第2版)》pdf下载在线阅读,求百度网盘云资源

《算法竞赛入门经典(第2版)》(刘汝佳)电子书网盘下载免费在线阅读资源链接:链接:https://pan.baidu.com/s/1hn9oYzCM-fjrw649WmvKyg 提取码:6bov  书名:算法竞赛入门经典(第2版)作者:刘汝佳豆瓣评分:8.9出版社:清... 查看详情

2021算法竞赛入门班第四节课搜索练习题(代码片段)

目录Jelly【简单bfs】maze【建图求最短路】wyh的迷宫【BFS】Jelly【简单bfs】https://ac.nowcoder.com/acm/problem/201613#include<bits/stdc++.h>usingnamespacestd;constintN=110;structnodeintx,y,z,step;;chara[N][N][N];intst[N][N][N],n;intdx[6]=-1,0,0,1,0,0;intdy[6... 查看详情

2021算法竞赛入门班第二节课递归分治二分练习题(代码片段)

目录华华给月月准备礼物【二分】TheBiggestWaterProblem【模拟】Bits【递归模拟/未完成】[NOIP2004]FBI树【树的后序遍历】[USACO2009DecS]MusicNotes【二分+前缀和】[NOIP2009]分数线划定【模拟】逆序数【归并排序】逆序对【组合数/推式子】... 查看详情

2021算法竞赛入门班第七节课图论练习题(代码片段)

目录挖沟【最小生成树板子题】公交线路【最短路板子题】挖沟【最小生成树板子题】https://ac.nowcoder.com/acm/problem/17509#include<bits/stdc++.h>usingnamespacestd;structnodeinta,b,c;temp;boolcmp(nodea,nodeb)returna.c<b.c;constintN=1e5+10;intn... 查看详情

java基础50道经典练习题(22)——递归求阶乘

【程序22递归求阶乘】题目:利用递归方法求5!。 程序分析:递归公式:fn=fn_1*4! 源码:packagecom.homework.test;/*【程序22递归求阶乘】题目:利用递归方法求5!。程序分析:递归公式:fn=fn_1*4!*/publicclassTest22{publicstaticvoidmain(Str... 查看详情

java基础50道经典练习题(22)——递归求阶乘

【程序22递归求阶乘】题目:利用递归方法求5!。 程序分析:递归公式:fn=fn_1*4! 源码:packagecom.homework.test;/*【程序22递归求阶乘】题目:利用递归方法求5!。程序分析:递归公式:fn=fn_1*4!*/publicclassTest22{publicstaticvoidmain(Str... 查看详情

《算法竞赛入门经典(第二版)》pdf

...下载内容简介  · · · · · ·《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。全书内容分为12章,... 查看详情

算法竞赛入门经典数组实现树的层序遍历的一个小错误(代码片段)

p154紫书原文:纠正一下这里的newnode()函数中,have_value[root]=false应该是have_value[u]=false附上代码,不知道原题的可以上网搜一下例题6_7Uva122树的层序遍历数组(静态链表)实现:#include<cstdio>#include<cstring>#includ 查看详情