物理 信息C++初阶1

各位,你们说是数学帖好还是信息帖好.
1:数学新手轮1~10复习笔记.
2:信息C++初阶1
最近平板上出现电线消失事件 存好的BFS暂时无法传来了 我又要开始休眠。。。(ーー゛)(ーー゛)(ーー゛)再见各位
最近一次成绩CSP-J 第二次复赛的0分将我跌入谷底,暂时撇下C++搞数学了,现在为没学者普及一番.
先导得来,不然有些会昏.[反正现在编程是我第二个喜好]
安装C++,尽量用5.9.2或5.11.2;不用付费,但只能用5.9.2性能除了某些特殊游戏框架无法使用,其余皆可以.
下载链接是http://www.bloodshet.net/
框架万能头:#include<bits/stdc++.h>
期刊一:输入输出
建立文件按Ctrl+N或点击file下面的白色纸.按Source File便建立出文档.
为了输出代码,就先知道格式:
1 [头文件]
2 using namespace std;
3 int main(){
4
5 return 0;
6 }
切记,指令后面皆须加上分号,而且必须是英语分号.不能是中文分号.
介绍输入输出头文件:
#include<iostream>[存在cout与cin]
同时所以代码头文件可变为#include "iostream",两者功能差不多,多了个查找功能
#include<stdio.h>[存在printf与scant]
#include<math.h>[存在基本数学函数]
常用的头文件很多,而万能头文件也很重要,他的优点是包括绝大多数[不是全部]头文件,而致命缺点便是耗费时间偏多[2ms~5ms]
所以能不用万能头就别用[可以用,只要不超过1000ms[=1s]基本都没事.]
现在进入正题,cin>>, cout<<便是输入输出指令.
格式化输入输出暂时不讲[你们实力大多不强]
所以用这些就可以输入输出了,再按F11[彩色方框的]便可运行...
用华为的电脑更好理解,毕竟电脑格式太多了记不过来.
第一期结束-------------------
第二期:递归
学过数学的都知道递归是什么;就是不停带入带入......
而你想说自己代数,特别是定义新运算最牛,那就跟电脑比比;
普通电脑每秒可有几亿左右加减运算;所以,跟电脑比递归,你还是算了吧;
可是,人脑又是发明电脑的,并且人类智慧有多强?所以操控电脑的我们与电脑决斗时,给它这个问题:
(-1)^20231231423415932487592384984=?
我的答案:1[0.3s]
电脑答案:1[>1000ms]
所以我们智慧可与电脑决斗[bushi;
开玩笑结束;现在给予一个定义:
在C++里面,函数的定义如下:
int[或者void] f[靠自己喜好定义函数名](int a;int b){//此处是输入2个参数,a,b;参数有多少个自行输入,此处只举例子;
}
而int的最大值为$2^32-1$,long long类型的最大值为$2^64-1$;
而递归函数便是:
int f(int a){
if(条件) return ;[返回]
return f(a-1);[返回]
}
所以以上便是递归函数,小练习来一下,下一期给答案;
#include<bits/stdc++.h>
using namespace std;
int f(int n){
if(n<11 and n>=6) return f(n-2);
else if(n<5) return f(n*3);
return n;
}
int main (){
cout<< f(10);
return 0;
}
答案:12;
第三期:cin-cout[一个输入输出语言,毕竟不教估计会看不懂上面的东西]
[第二期只是一个尝试版,能学会挺强的,建议深造信息或数学]
cin是个很简单的东西,你总得告诉电脑这个东西怎么表达
不然一个机器怎么会理解呢.
就是输入数据.参考代码: cin>>n[n为参数,前面得先写int n;不然从哪来的]
输入后总得输出吧,参考代码cout<<n;毕竟你不输出你做这个意义是什么...
结束....
作者:墨霜
学多少看你造化了.
来骗收藏了.
科普:
有些好心网友给发了个setprecition 这个东西,告诉你,这是用在cout后面的
例如: cout<<fixed<<setprecision (3)<<n;指保留三位小数.
但是这东西我真不喜欢...
所以介绍另一个一样的方法printf ("%.3lf",n);首先这个n的类型是double双精度类型的
会保留小数,而这个n便会保留三位小数.与上面效果一样
第三章:递推;
上一章学了递归,相信大家学会了;
在学递推前,引入一道题目:
1:大家都知道兔子数列是吧.现在来一下;
Problem.1: 给予数列n项,例如n=5时,输出1 1 2 3 5 8(两数之间隔一空;
Problem 2:给予数列n项,运算规则为$A_n=A_{n-1}+A{n-2}+A_{n-3}$
$,同时目前已知A_1+A_2=A_3;A_4=4;请写出实现此数列的方法.$
期末考完了,来续一下.
众所周知,兔子数列的一种叫做斐波那契数列(当然有些人用谐音梗,叫啥肥波纳妾数列)
而第一个问题便是斐波纳契数列,前两项之和为第三项
即只需不断推导即可.
用递归便是:
#include<bits/stdc++.h>
using namespace std;
int f(int n){
if(n==1 or n==2) return 1;
else return f(n-1)+f(n-2);
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cout<<f(i)<<" ";}
return 0;
}