您现在的位置是:首页 >其他 >算法修炼之练气篇——练气五层网站首页其他

算法修炼之练气篇——练气五层

命运之光 2024-06-17 10:43:16
简介算法修炼之练气篇——练气五层

博主:命运之光

专栏:算法修炼之练气篇

前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的,练完这200多道题就考了今年第十四届的B组蓝桥杯C/C++获得了省一,后面还会更新“算法修炼之筑基篇”里面包括了省赛到国赛这一个月训练的刷奖计划,大概有40道左右,感兴趣的话可以关注一下命运之光)

目录

题目 2778: 判断数正负

题目描述

输入格式

输出格式

样例输入

样例输出

题目 2780: 奇偶数判断

题目描述

输入格式

输出格式

样例输入

样例输出

题目 2181: 信息学奥赛一本通T1005-地球人口承载力估计

题目描述

输入格式

输出格式

样例输入

样例输出

题目 2998: 电影票

题目描述

输入格式

输出格式

样例输入

样例输出

题目 2997: 梯形面积

题目描述

输入格式

输出格式

样例输入

样例输出

题目 1073: 弟弟的作业

题目描述

输入格式

输出格式

样例输入

样例输出

一开始我是这样写的,时间超限50

改了一下这样写就没什么问题,有时候真的感觉差那么一点点,就是不给过是什么感觉。

??今日份修炼结束,再接再厉!!!


题目 2778: 判断数正负

题目描述

给定一个整数N,判断其正负。

输入格式

一个整数N(-109 <= N <= 109)

输出格式

如果N > 0, 输出positive;
如果N = 0, 输出zero;
如果N < 0, 输出negative。

样例输入

1

样例输出

positive

主要就是if语句的运用,比较简单,见代码:

#include<stdio.h>
int main()
{
    int n;//int的取值范围2147483648到2147483647
//够用了,所以就不写long long了
//顺便说一下long long的取值范围是-9223372036854775808到9223372036854775807
    scanf("%d",&n);
    if(n>0)
    {
        printf("positive");
    }
    if(n==0)
    {
        printf("zero");
    }
    if(n<0)
    {
        printf("negative");
    }
    return 0;
}

题目 2780: 奇偶数判断

题目描述

给定一个整数,判断该数是奇数还是偶数。

输入格式

输入仅一行,一个大于零的正整数n。

输出格式

输出仅一行,如果n是奇数,输出odd;如果n是偶数,输出even。

样例输入

5

样例输出

odd

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    if(n%2==0)
    {
        printf("even");
    }
    else
    {
    /*发这个就想吐槽一下这个输出*/
        printf("odd");//欧豆豆,笑死我了!哈哈哈哈哈哈哈哈哈!
    }
    return 0;
}

题目 2181: 信息学奥赛一本通T1005-地球人口承载力估计

题目描述

假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x亿人生活a年,或供y亿人生活b年。

为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?

输入格式

输入只有一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开。x>y,a<b,ax<by,各整数均不大于10000。

输出格式

一个实数z,表示地球最多养活z亿人,舍入到小数点后两位。

样例输入

110 90 90 210

样例输出

75.00

一道数学题,与其说是算法其实主要就是解一道数学题。

#include<stdio.h>
int main()
{
    double r1,z1,r2,z2;
    scanf("%lf %lf %lf %lf",&r1,&z1,&r2,&z2);
    printf("%.2lf",(r1*z1-r2*z2)/(z1-z2));
    return 0;
}

题目 2998: 电影票

题目描述

已知一位小朋友的电影票价是10元,计算x位小朋友的总票价是多少?

输入格式

输入x。

输出格式

人数和电影票总价,中间用一个空格隔开。

样例输入

2

样例输出

2 20

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

题目 2997: 梯形面积

题目描述

在梯形中阴影部分面积是150平方厘米,求梯形面积。


 

输入格式

(无)

输出格式

输出梯形面积(保留两位小数)。

样例输入

样例输出

直接算出答案输出就行了

#include<stdio.h>
int main()
{
    printf("400.00");//记得题目要求需要保留小数
    return 0;
}

题目 1073: 弟弟的作业

题目描述

你的弟弟刚做完了“100以内数的加减法”这部分的作业,请你帮他检查一下。每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算。

输入格式

输入文件包含不超过100行,以文件结束符结尾。每行包含一道题目,格式保证符合上述规定,且不包含任何空白字符。输入的所有整数均不含前导0。

输出格式

输出仅一行,包含一个非负整数,即弟弟答对的题目数量。

样例输入

1+2=3 3-1=5 6+7=? 99-0=99

样例输出

2

注意:这道题注意一下getchar()的引用避免进入死循环,没加getchar()的应该都深有体会。

一开始我是这样写的,时间超限50

#include<stdio.h>
int main()
{
    int a,b;//a为加数,b为被加数
    char m,n;//m为+号或-号,n为等号 
    int c;//弟弟输出的答案 
    int count=0;//用来计算弟弟正确的数量 
    while(~scanf("%d%c%d=%d",&a,&m,&b,&c))
    {
        if(m=='+'&&(a+b)==c||m=='-'&&(a-b)==c)
        {
            count++;
        }
        else
        {
            getchar();// 不写的话碰到1+1=?会死循环,getchar();遇 到scanf输入异常时 getchar清空缓存区数据;
        }
    }
    printf("%d",count);
    return 0;
}

改了一下这样写就没什么问题,有时候真的感觉差那么一点点,就是不给过是什么感觉。

#include<stdio.h>
int main()
{
    int a,b;//a为加数,b为被加数
    char m,n;//m为+号或-号,n为等号
    int c;//弟弟输出的答案
    int count=0;//用来计算弟弟正确的数量
    while(~scanf("%d%c%d=%d",&a,&m,&b,&c))
    {
        if(m=='+'&&(a+b)==c||m=='-'&&(a-b)==c)
        {
            count++;
        }
        else
        {
            getchar();// 不写的话碰到1+1=?会死循环,getchar();遇 到scanf输入异常时 getchar清空缓存区数据;
        }
    }
    printf("%d",count);
    return 0;
}

??今日份修炼结束,再接再厉!!!

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。