信息学奥赛一本通
snow_hello
雪很美,也很冷。但是冰雪终将化去,留下的,只有温暖。 -------snow_hello
展开
-
1163:阿克曼(Ackmann)函数
【题目描述】阿克曼(Ackmann)函数中,定义域是非负整数,函数值定义为:【输入】输入和。【输出】函数值。【输入样例】2 3【输出样例】9首先我们要知道函数表达式的知识,在返回值不是void的函数中,return 返回的是这个函数最后的结果的值,同样递归函数也是一个函数,只是它是调用自身的函数而已,所以不要迷这点,因为递归函数也不是一个非常高大上的东西在else 中 return 返回的值是akm(m-1,akm(m,n-1))递归完成以后的,有可能会递归调动很多层,所以不原创 2021-11-26 22:05:18 · 5019 阅读 · 1 评论 -
1157:哥德巴赫猜想
#include<iostream>#include<cmath>using namespace std;bool judge(int x);int main(){ int x; int i; for(x=6; x<=100; x+=2) //枚举6-100的偶数 for(i=2; i<=x/2; i++) //将x分解为i与x-i两个数 if(judge(i)&&judge(x-...原创 2021-11-26 21:50:56 · 1329 阅读 · 0 评论 -
信息学奥赛一本通-1150 正整数2和n之间的完全数
【题目描述】求正整数2和n之间的完全数(一行一个数)。完全数:因子之和等于它本身的自然数,如6=1+2+3【输入】输入n。【输出】一行一个数,按由小到大的顺序。【输入样例】7【输出样例】6【源程序】#include<iostream>using namespace std;int judge(int x);int main(){ int n; int i; cin>>n; for(i=2; i<=n...原创 2021-11-26 19:25:19 · 909 阅读 · 0 评论 -
04:数组逆序重放
将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。输入输入为两行:第一行数组中元素的个数n(1<n<100),第二行是n个整数,每两个整数之间用空格分隔。输出输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。样例输入58 6 5 4 1样例输出1 4 5 6 8源代码:#include <iostream>using namespace std;int main(){ int n, a[...原创 2021-10-15 19:57:02 · 773 阅读 · 0 评论 -
Vigenère密码(信息学奥赛一本通-T1402)
【题目描述】16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为密文,用C表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为k。 在Vigenère密码中,密钥k是一个字母串,k=k1k2…kn。当明文M=m1m2…mn时,得到的密文C=c1c2…cn,原创 2021-10-09 20:43:17 · 200 阅读 · 0 评论 -
向量点积计算(信息学奥赛一本通-T1108)
【题目描述】在线性代数、计算几何中,向量点积是一种十分重要的运算。给定两个n维向量a=(a1,a2,...,an)和b=(b1,b2,...,bn),求点积a⋅b=a1b1+a2b2+...+anbn。【输入】第一行是一个整数n(1≤n≤1000)。第二行包含n个整数a1,a2,...,an。第三行包含n个整数b1,b2,...,bn。相邻整数之间用单个空格隔开。每个整数的绝对值都不超过1000。【输出】一个整数,即两个向量的点积结果。【输入样例】31 4 62 1 5原创 2021-10-09 20:36:22 · 333 阅读 · 0 评论