参考连接:
我们也可以通过”语言“来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming Language)。
编程语言有很多种,常用的有C语言、C++、Java、C#、Python、PHP、JavaScript、Go语言、Objective-C、Swift、汇编语言等,每种语言都有自己擅长的方面。
编程语言的发展大概经历了以下几个阶段: 汇编语言 --> 面向过程编程 --> 面向对象编程 汇编语言是编程语言的拓荒年代,它非常底层,直接和计算机硬件打交道,开发效率低,学习成本高; C语言是面向过程的编程语言,已经脱离了计算机硬件,可以设计中等规模的程序了; Java、C++、Python、C#、PHP 等是面向对象的编程语言,它们在面向过程的基础上又增加了很多概念。
C语言是一门面向过程的编译型语言,它的运行速度极快,仅次于汇编语言。C语言是计算机产业的核心语言,操作系统、硬件驱动、关键组件、数据库等都离不开C语言;不学习C语言,就不能了解计算机底层。
C++一开始被本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)发明时,起初被称为“C with Classes”,即「带类的C」。
很明显它是在C语言的基础上扩充了类class等面向对象的特性和机制。但是后来经过一步步修订和很多次演变,最终才形成了现如今这个支持一系列重大特性的庞大编程语言。
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。 C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。 C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。 C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。 注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。
标准库
标准的 C++ 由三个重要部分组成: 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。 C++ 标准库,提供了大量的函数,用于操作文件、字符串等。 标准模板库(STL),提供了大量的方法,用于操作数据结构等。
经过多轮开发和内部测试,NOI Linux 2.0版(Ubuntu-NOI 2.0版)已经基于Ubuntu 20.04.1版定制完成,现正式对外发布。
根据NOI科学委员会决议,该系统将自2021年9月1日起作为NOI系列比赛和CSP-J/S等活动的标准环境使用。在此日期前,NOI相关活动标准环境仍为旧版NOI Linux。
NOI Linux2.0 的使用教程可参考:
NOI Linux2.0中提供的系统情况如下:
C++官网如下:
C++的官网教程如下:
https://cplusplus.com/doc/tutorial/
计算机只理解一种语言,这种语言由一组由1和0组成的指令组成。这种计算机语言被恰当地称为机器语言。
对计算机的一条指令可能是这样的:
00000 10011110
允许用户输入两个数字、将两个数字相加并显示总数的特定计算机的机器语言程序可以包含以下机器代码指令:
可以想象,直接用机器语言编写计算机程序,只使用1和0是非常繁琐和容易出错的。为了使编程更容易,开发了高级语言。高级程序还使程序员更容易检查和理解彼此的程序。
如果以上的代码,由C++完成,代码如下:
int a, b, sum;
cin >> a;
cin >> b;
sum = a + b;
cout << sum << endl;
通过对比,理解用c++语言编写程序比用机器语言编写程序要容易得多。
因为计算机只能理解机器语言,而人类希望用高级语言写作,高级语言必须在某个时刻被重写(翻译)成机器语言。这是通过称为编译器、解释器或汇编器的特殊程序来完成的,这些程序内置于各种编程应用程序中。
c++被设计成一种编译语言,这意味着它通常被翻译成系统可以直接理解的机器语言,这使得生成的程序非常高效。为此,需要一组工具,称为开发工具链,其核心是编译器及其链接器。
控制台程序是使用文本与用户和环境进行通信的程序,例如将文本打印到屏幕上或从键盘读取输入。
对于初学者来说,编译c++程序最简单的方法是使用集成开发环境(IDE)。IDE通常集成了几种开发工具,包括文本编辑器和直接从IDE中编译程序的工具。
常用的几种工具为:
Code::blocks Visual Studio Express Dev-C++
关于Code::blocks的安装方式如下:
C++教程系列之-02-win10系统下codeblocks-20.03下载与安装
下面通过一个例子说明C++的程序结构。
打开Code::blocks,新建文件,代码如下:
// my first program in C++
#include <iostream>
using namespace std;
int main ()
{
std::cout << "Hello World! " << endl;;
cout << "I'm a C++ program";
}
先编译,再运行,输出为:
参考:
https://blog.csdn.net/m0_38083668/article/details/82084692
https://blog.csdn.net/scar_lyw/article/details/78834200
题目描述:小凯手中有两种面值的金币,两种面值均为正整数且彼此互素(互素也就是互质,是公约数只有1的两个整数,叫做互质整数。公约数只有1的两个自然数,叫做互质自然数,后者是前者的特殊情形。)。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。
输入格式:输入数据仅一行,包含两个正整数 a 和 b ,它们之间用一个空格隔开,表示小凯手中金币的面值。
输出格式:输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。
输入 5 7 输出 23 备注
【输入输出样例1说明】
小凯手中有面值为5和7的金币无数个,在不找零的前提下无法准确支付价值为1、2、3、4、6、8、9、11、13、16、18、23的物品,其中最贵的物品价值为11,比23贵的物品都能买到,比如:
24 = 5 * 4 + 7 * 2
25 = 5 * 5 + 7 * 0
26 = 5 * 1 + 7 * 3
27 = 5 * 4 + 7 * 1
28 = 5 * 0 + 7 * 4
29 = 5 * 3 + 7 * 2
30 = 5 * 6 + 7 * 0
31 = 5 * 2 + 7 * 3
……
结论为:
x * y - x - y
代码实现
#include <bits/stdc++.h>
using namespace std;
long long n,m;
int main()
{
cin>>n>>m;
cout<<(n-1)*(m-1)-1<<"\n";
return 0;
}
编译后运行: