题库核心代码:第一部分(顺序结构)

前言

大家好,我是正在写开场白施忆晨,我又愉快地来更新啦!今天是国庆第二天,所以我们来水一期来码一期【doge】,来发一下题库1~3的核心代码(真的只有核心代码,然后今天是第一期),心动不如行动,开码!
后期仔:我们之前讲过顺序结构分支结构循环结构,感兴趣的同蟹可以去点击链接康康~

顺序结构

1. 萌新关爱之-A+B Problem

题目描述

给你两个整数,要求输出这两个整数的和

输入格式

两个整数a,b

输出格式

一个整数

不会吧,不会吧,不会有人这道题都不会做吧!(偷笑)

核心代码

int ______;//自己定义去!
cin>>___>>___;//自己写去!
cout<<__+__;//自己写去!

2. 长方体表面积与体积

题目描述

给出长方形的长宽高,输出长方体的表面积和体积。

输入格式

一行三个不超过100的正整数,表示长方体的长宽高。

输出格式

一行两个整数,表示长方体的表面积和体积,以空格间隔。

不会吧,不会吧,不会有人这道题都不会做吧!(偷笑×2)

核心代码

int a,b,c,s=_____;//自己定义去!
cin>>a>>b>>c;
cout<<_____<<" "<<______;//自己写去!

3. 求十位数

题目描述

小贤今天学习了编程,发现编程非常有趣,可以求出不同的位数。例如,输入123可以求出个位3,也可以求出百位1。现在小贤遇到一个问题,不会求中间的十位数。请你写一个程序,帮助小贤完成这个目标。

输入格式

输入一个整数。

输出格式

输出一个整数

不会吧,不会吧,不会有人这道题都不会做吧!(偷笑×3)

核心代码

int a;
cin>>a;
cout<<____;//自己写去!

4. NOIP2017-J-1-成绩

题目描述

牛牛最近学习了C++入门课程,这门课程的总成绩计算方法是:
总成绩=作业成绩×0.2+小测成绩×0.3+期末考试成绩×0.5
牛牛想知道,这门课程自己最终能得到多少分。

输入格式

三个非负整数 A,B,C 分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 100 分。

输出格式

一个整数,即牛牛这门课程的总成绩,满分也是 100 分。

不会吧,不会吧,不会有人这道题都不会做吧!(偷笑×4)

核心代码

int a,b,c;
  cin>>a>>b>>c;
  cout<<a*0.2+b*0.3+c*0.5;

5. 三角形面积

题目描述:

给定一个三角形的一条边长a和该边上的高h,求三角形面积。
保证三角形面积为整数。

输入格式:

三角形的一条边长a和该边上的高h。

输出格式:

一个整数,表示三角形的面积。

不会吧,不会吧,不会有人这道题都不会做吧!(偷笑×5)

核心代码

int a,h;
  cin>>a>>h;
  cout <<a*h/2;

6. 欧几里德距离

题目描述:
小C有一个平面
它发现了平面上的两个点,请你求出求它们之间的欧几里德距离。欧几里德距离定义为连接这两个点的线段的长度。
答案保留两位小数输出。
输入格式:
四个整数,a,b,c,d。坐标为(a,b)与(c,d)
输出格式:
输出这两个点的欧几里德距离。
核心代码

  double a,b,c,d;
  cin>>a>>b>>c>>d;
  cout <<fixed<<setprecision(2)<<sqrt((a-c)*(a-c)+(b-d)*(b-d));

10. 浮点数

题目描述:

小鹦鹉正在学习浮点数,你跟他说一个浮点数,他立刻就能学会。
输入一个浮点数,输出这个浮点数。

输入格式:

输入一个浮点数

输出格式:

输出一个浮点数,保留三位小数
核心代码

  cin>>a;
  cout<<fixed<<setprecision(3)<<a;

11. 直角三角形

题目描述:
使用勾股定理,根据一个直角三角形的两条直角边,问斜边长度。保证三条边长都为整数。
输入格式:
一行两个不超过1000的正整数,表示直角三角形的两直角边长度。
输出格式:
一行一个整数,表示直角三角形的斜边长度。
核心代码

   	int a,b,c;
   	cin>>a>>b;
   	c=a*a+b*b;
   	cout<<sqrt(c);

12. 圈地

题目描述:
小A要在墙角圈一块长方形地,我们认为墙面无限长。现在小A手里只有长度为w的绳子,问最多能圈面积多大的地。保证w为偶数。
输入格式:
一行一个不超过100的正整数,表示绳长。
输出格式:
一行一个整数,表示地的最大面积。
核心代码

int w;
cin>>w;
cout<<w/2*w/2;

13. 吃鸡腿

题目描述:
小A最喜欢吃鸡腿了。现在,炸鸡腿买三送一了!每只鸡腿a元,小A手中有B元。问小A能吃到多少只鸡腿?
输入格式:
一行两个整数a,B。
输出格式:
一行一个整数,表示答案。
核心代码

  int a,b,c,d;
  cin>>a>>b;
  c=b/a;
  d=c/3;
  cout<<c+d;

14. 鸡兔同笼

题目描述:
鸡兔同笼:若干只鸡和若干只兔子关在同一个笼子里,
数数头有x个,数数脚有y只,问有鸡和兔子各几只?

输入格式:

一行两个整数,xx 和 yy.

输出格式:

依序输出鸡的数量和兔子的数量,各占一行
核心代码

  cin>>x>>y;
  cout <<(x*4-y)/2<<" "<<(y-x*2)/2;

15. 分数求和

题目描述

S=1/2+1/6+1/12+1/20+1/30+1/42+… 求数列前n项和,答案保留2位小数

输入格式

整数n

输出格式

一个浮点数.
核心代码

    int n;
    cin>>n;
    cout<<fixed<<setprecision(2)<<1-1.0/(n+1);

--------------------------------------------------分割线--------------------------------------------------
好啦,这次的分享就到这啦,下次我会更新《分支结构题库核心代码》,敬请期待QWQ

鸣谢

大佬@徐熙喆的Latex教学贴与大佬@汪嘉乐的Markdown教学贴让我受到了很多启发;

另外

制作不易,点个赞吧(擦泪(┳_┳)…)

小彩蛋

供稿@黄文泽
听说津津为课程烦恼 金明一家住进了新房
听说丁丁玩数字游戏 火柴棒能搭出新天地
听说校门外正在砍树 大家一起做靶形数独
听说旅行者在赚差价 潜伏者正在破译着密码
只有无尽的代码知道 津津摆脱了学习的烦恼
金明开心地走进商店 挑选着书桌和电脑
总有一种算法能够让你成功拿到分
无论是贪心还是动规 或者将答案二分
思如泉涌掀起波涛 又汇成一个新的算法
让所有TLE 所有MLE 激励着我们前行写代码
然而…………
模拟只会猜题意,贪心只能过样例;
数学上来先打表,DP一般看规律.
组合数学靠运气,计算几何瞎暴力;
图论强行套模板,数论只会GCD.
递归递推伤不起,搜索茫然TLE;
分治做得像枚举,暴力枚举数第一.
数据结构干瞪眼,怒刷水题找信心;
涨姿势也不容易,考试一来全懵逼!
听说同学们在玩推理 小Z的袜子总配不齐
小渊和小轩正在传纸条,运输小队长正过独木桥;
旅行家预算最小的费用,明明迷上侦探沉迷推理;
丁丁玩数字游戏着了迷,陶陶兴高采烈地摘苹果;
校门外一棵棵树长起来,辰辰和师傅一起去采药;
小青蛙踩着石头过了河,老师带领同学传球游戏;
小渊的立体图严格摆放,明明正乱猜一堆随机数;
金明激动地装修着新房,Jam正用小写字母计数;
Mars星球上有能量项链,金明预算购买主件附件;
Hanks博士培养细胞样本,潜伏者专心地破译密码;
Hankson出了一道趣味题,小城和小华玩靶形数独;
小明在藏宝楼上开宝箱,也在花店门口摆一排花;
使者游历各国学习文化,BlaisedeVigenere设计密码;
国王邀请大臣领取奖赏,小A和小B一起外出旅行;
守望者在荒岛上忙逃离,FJ在数字三角形上走路;
笨小猴正在选幸运单词,机器人尝试着搬运重物;
小明自己玩耍数字游戏,教主把花园种满一圈树;
奇怪的电梯正上上下下,小明规划旅行国家计划;
一堆人数来数去杀坏人,硬币正做着无谓的翻转;
拱猪是扑克牌非常有趣,尤其是Peter的烟闪光;
FJ专心地给奶牛分着厩,Tom研究双栈排序着迷;
FJ的奶牛掉进垃圾陷阱,一颗颗导弹被系统拦截;
小Z把他的袜子找到 AK了无数机房。

嘻嘻

1726987657884

再说一遍

点赞!!!

3 个赞

\color{red}我表示:6

1 个赞

\color{green}要讲一下思路,不能只放核心代码

1 个赞

有一种A+B的线性高效搞笑抽象简单做法

#include <iostream>
#include <vector>
#include <map>

// Paxos节点角色定义
class Acceptor;
class Proposer;
class Learner;

class Acceptor {
public:
    int highest_proposal_seen = -1;  // 记录见过的最高提案号
    int accepted_value = 0;  // 记录被接受的值

    bool prepare(int proposal_number) {
        // Acceptor接受prepare请求,如果提案号大于当前见过的最大提案号则接受
        if (proposal_number > highest_proposal_seen) {
            highest_proposal_seen = proposal_number;
            return true;
        }
        return false;
    }

    bool accept(int proposal_number, int value) {
        // 如果提案号大于等于最高提案号,Acceptor接受提案并记住值
        if (proposal_number >= highest_proposal_seen) {
            highest_proposal_seen = proposal_number;
            accepted_value = value;
            return true;
        }
        return false;
    }

    int get_accepted_value() {
        return accepted_value;
    }
};

class Proposer {
public:
    int proposal_number = 0;
    int proposed_value = 0;

    void propose(int a, int b, std::vector<Acceptor>& acceptors) {
        proposal_number++;
        proposed_value = a + b;

        // 第一阶段:发送prepare请求
        int prepare_count = 0;
        for (auto& acceptor : acceptors) {
            if (acceptor.prepare(proposal_number)) {
                prepare_count++;
            }
        }

        // 如果大多数Acceptor接受了prepare请求,进入第二阶段
        if (prepare_count > acceptors.size() / 2) {
            int accept_count = 0;

            // 第二阶段:发送accept请求
            for (auto& acceptor : acceptors) {
                if (acceptor.accept(proposal_number, proposed_value)) {
                    accept_count++;
                }
            }
            /*
             如果大多数Acceptor接受了提案,则提案成功
            if (accept_count > acceptors.size() / 2) {
                std::cout << "Proposer: 提案成功,提议值为: " << proposed_value << std::endl;
            } else {
                std::cout << "Proposer: 提案失败,未获得足够接受者的同意。" << std::endl;
            }
        } else {
            std::cout << "Proposer: prepare请求失败,未获得足够接受者的同意。" << std::endl;*/
        }
    }
};

class Learner {
public:
    // 学习者从接受者处学习最终的提案值
    void learn(std::vector<Acceptor>& acceptors) {
        std::map<int, int> value_count;
        for (auto& acceptor : acceptors) {
            value_count[acceptor.get_accepted_value()]++;
        }

        // 找到被大多数接受者接受的值
        for (auto& awa : value_count) {
            int count = awa.second;
            int value = awa.first;
            if (count > acceptors.size() / 2) {
                std::cout /*<< "Learner: 学习到的值为: "*/ << value << std::endl;
                return;
            }
        }

        //std::cout << "Learner: 未能学习到一致的值。" << std::endl;
    }
};

int main() 
{
    int a, b;
    std::cin >> a >> b;  // 输入两个整数

    // 创建5个Acceptor(接受者)
    std::vector<Acceptor> acceptors(5);

    // 创建一个Proposer(提议者)
    Proposer proposer;

    // Proposer提议两个数的和
    proposer.propose(a, b, acceptors);

    // 创建一个Learner(学习者)
    Learner learner;

    // Learner学习最终的和
    learner.learn(acceptors);

    return 0;
//by chatgpt不是我写的不要封我
}

paxos模拟a+b

6