坑爹的上机热身赛……不过真的是学到了很多的东西,零散的记在这里,作为自己C++的学习历程见证。
1.多组数据读入
while (cin >>a>>b)
{
cout << a+b<<endl;
}
2.逻辑连接词
且&&
或||
3.使用三角函数sin cos tan 需要加cmath头文件
4.min函数 min(x,y) 需要加algorithm头文件
5.A?B:C 三元运算符 若A则运行B否则运行C
6.取余运算符%
7.if (条件)
{语句}
else if(条件)
{语句}
else if(条件)
{语句}
如果其中一个满足 则后面的不判断
8.while(n--)
进行第一次循环的时候n值已经为n-1了 一直到0的循环完毕 --n是从n-1到1的循环完毕 n++和++n类似
9.string
string需要加头文件string
例如 string s;
cin >>s;
可以用n=s.size()获取string字符“s”的长度
s[n](n为数字)可以读取s里面的字符(n从0开始取值 0是第一个读到的值——就是从左向右数的第一个……)
int x=s[n]-'0'(n为数字)
10.char
char可以用
int x=(int)a; int y=(int)b;
这样的指令可以将char里面的字符转换为对应的ASCII数字
(刚刚经过测试 char是可以直接比较大小的……)
11.输出小数点后十位
cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(10);然后cout << a<<endl;的话 a就会保留到小数点后十位
PS:如果没有cout.setf(ios::fixed);会一共保留10位 原因不明12.附上自己过得8题的代码……自己看着都不明觉厉题目:Description
将n个不同编号(从1~n)的小球放入n个不同编号(从1~n)的盒子,要求每个盒中有且仅有一个球,并且任意一盒的编号与至于其内的球的编号不同,请问有多少种放法?
这便是由伯努利数学世家提出的著名数学问题“装错信封问题”的简化模型,泛化名称为——全错位排列。Many years later,瑞士数学家欧拉提出了该模型的计算公式:
请你根据以上公式,计算当球(盒)为n的时候放法的数量。
(Thor:“渣诚不要给公式啊——”)Input
多组测试数据。
每组测试数据为一个正整数n(1≤n≤20),表示球(盒)的个数。
末尾以输入一个0结束Output
对于每组数据,输出一行,包含一个整数,为放法数量
Sample Input
2
3
4
0Sample Output
1
2
9Hint:
请用递归实现
解:
就先写这些吧#include <iostream> #include <iomanip> using namespace std; unsigned long C (unsigned long); int main() { int a; while (cin >> a) { if (a==0) { break; } else { int counter = a-1; cout <<C(counter)<<endl; } } } unsigned long C(unsigned long number) { if (number <=2) return number; else return (number)*(C(number-1)+C(number-2)); }