自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 数组、单链表和双链表介绍以及双向链表的C/C++实现

节点10"的后继节点是"节点20"(数据为10的节点),"节点20"的前继节点是"节点10";表头为空,表头的后继节点是"节点10"(数据为10的节点),"节点10"的后继节点是"节点20"(数据为10的节点),..."节点20"的后继节点为"节点30",而"节点30"的后继节点为"节点40"。"节点10"的后继节点为"节点15",而"节点15"的后继节点为"节点20"。"节点10"的后继节点为"节点20","节点20"的前继节点为"节点10"。"节点10"的后继节点为"节点20"。......

2022-07-19 09:41:27 710 19

原创 十字方阵c++

题目描述小t同学最近对递归图案十分入迷,如著名的Hilbert曲线就是递归的,小t自己也想创作一个递归图案,有一次小t在经过一座基督教堂时看到了屋顶上的大十字架,他瞬间就产生了灵感,想出了一个递归的十字方阵图案,这个图案是由2^n-1行2^n-1列的字符构成的,其递归定义如下:如果n=1,它是1行1列的字符方阵,即一个字符,这个位置上的字符是'+',表示十字架。当n>1时,这个字符方阵被中间的一个大大的十字架(用+,-,|表示)递归地分解成大小相同的四部分,每一部分是一个2^(n-1)-1行2^

2022-07-08 13:24:16 1519 2

原创 [递归]阿克曼函数

阿克曼函数是非原始递归函数的例子;它需要两个自然数作为输入值,输出一个自然数。它的输出值增长速度非常高,仅是(4,3)的输出已大得不能准确计算。1920年代后期,数学家大卫·希尔伯特的学生Gabriel Sudan和威廉·阿克曼,当时正研究计算的基础。Sudan发明了一个递归却非原始递归的Sudan函数。1928年,阿克曼又独立想出了另一个递归却非原始递归的函数。他最初的念头是一个三个变量的函数A(m,n,p),使用康威链式箭号表示法是m→n→p。阿克曼证明了它是递归函数。希尔伯特在On the I..

2022-07-07 11:12:32 2271 2

原创 史密斯数(C++实现)

若一个合数的质因数分解式逐为位相加之和等于其本身逐位相加之和,则称这个数为smith数。如4937775=3×5×5×65837,而3+5+5+6+5+8+3+7=42,4+9+3+7+7+7+5=42,所以4937775是smith数。现给定两个数L和R,求L和R之间的史密斯数。算法分析:从L~R的正整数开始遍历寻找smith数,若这个数是素数则舍弃,若不是素数,则分解它的质因数再逐位相加求和,如果和它的数字和相等,那么输出。废话不多说,上代码#define uns using namespace

2022-07-07 11:11:57 1936

原创 C++求阶乘

1阶乘定义阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。一个正整数的阶乘(factorial)是所有小于及等于该数正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以方式递归定义:0!=1,n!=(n-1)!×n。2伪代码从阶乘的定义可以看出来,阶乘其实就是一个初始数值为1的变量乘上1~n............

2022-07-07 11:11:24 20169 2

原创 [C++]高精度求2的n次方

题目描述任意给定一个正整数N(N<=100),计算2的n次方的值。输入输入一个正整数N。输出输出2的N次方的值。样例输入10样例输出1024分析本质上是一道高精度乘法先给个投机取巧的#include<cmath>#include<iostream>using namespace std;int main(){ int n,m=0; cin>>n; cout<<pow(2,n); retur

2022-07-07 11:10:35 6303 1

原创 c++关机程序

在发关机程序代码前,必须得先知道一个库函数system("shutdown -s -t n")和system("shutdown -a),其中“shutdown -s”表示关机,“shutdown -a”表示取消关机,“-t n”表示延迟n秒;而要使用该库函数就得引头文件#include关机程序如下主要就是用来整朋友的,实在没啥大用处...

2022-07-07 11:10:15 4004

原创 c++求n个数中的最大值

目录题目描述输入输出代码打擂法数组排序任意输入n个整数,把它们的最大值求出来.输入只有一行,包括一个整数n(1

2022-07-07 11:10:01 7755

原创 大数据时代,我们逃得过算法的左右吗?

当我们在网上订购了一款商品,之后会有同款 同品牌或者其他莫名其妙的关联产品的推荐。当我们看过一名视频,随后会有同类博主 类似题目和形式的节目推送,源源不断。甚至,当我们倾向于某一种观点,不管多么稀奇,我们都能在浩瀚网络的犄角旮旯找到志同道合的人。是谁在背后操控?没错,是算法。一方面,我们的行为经验被收集分析,为了商业目的,以强化喜好的方式,继续喂食营销;另一方面,我们不难设想,它可以潜移默化地洗脑我们。有人说,大数据时代,算法对我们的了解,胜于家人,甚至胜过我们自己。因为它只有绝对理性,没有自我遮蔽或自我欺

2022-07-07 11:09:46 338 2

原创 C/C++经典例题:百钱百鸡

c++程序【百钱买百鸡】的解法题型介绍:百鸡问题是一个数学问题,出自中国古代约5—6世纪成书的《张邱建算经》,是原书卷下第38题,也是全书的最后一题,该问题导致三元不定方程组,其重要之处在于开创“一问多答”的先例。问题及解答:今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?第一种答案:答曰:鸡翁四,值钱二十;鸡母十八,值钱五十四;鸡鶵七十八,值钱二十六。第二种答案:又答:鸡翁八,值钱四十;鸡 母十一,值钱三十三,鸡鶵八十一,值钱

2022-07-07 11:09:31 7617 12

原创 CSDN2022总排名前十统计

闲来无事,大概统计一下csdn总排名最高的一些大佬;截至2022.06.23统计情况:直接点击 周排行/总排名 即可查看排行榜上的各位大佬第一名涛歌依旧的博客_CSDN博客-s2: 软件进阶,S1: C/C++,s2: Linux杂项领域博主博主:涛歌依旧访问量:2848万周排名:269原创:2550粉丝:22万积分:24万点评:已占领第一名二年(20年至今),真大佬,还在持续更新中(虽然最近没什么高访问量文章)第二名一个处女座的程序猿的博客_CSDN博客-Computer knowledge,ML,DL

2022-07-07 11:09:04 2084 6

原创 C/C++经典例题:鸡兔同笼

c++程序[鸡兔同笼]的解法题目描述鸡兔同笼是中国古代的数学名题之一。大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?大致意思是说:鸡兔在一个笼子里,从上面来数,有三十五个头,从下面来看,有九十四只脚,请问鸡和兔各有多少只?现在由你写一个程序,输入n与m,表示有n个头、m只脚,算出笼子中鸡和兔分别有多少只?输入:两个数 n m,表示笼子里有多少个头、多少只脚?(数据在有解范围内)输出:输出两个数 a b,表示鸡的数量和兔

2022-07-07 11:08:46 6096 18

原创 再见了,各位(虽然没人会注意到)

我知道,就我一个小博主而言,写一篇告退书会很,怎么说呢,就不符合我这身份,反正,我爸妈要求我别再搞计算机了,好好弄好文化课成绩,总之,我从此以后不会再发文了,偶尔回来一下互关互访,再见了,各位。...

2022-07-06 16:36:59 132

转载 自学编程80余年,这些私藏的实用工具&学习网站陪我走到了现在,必须收藏,学习效率翻倍 - 网站篇

前言:自学编程80余年,对于自学,善于搜索网上的一些资源来辅助,个人还是十分有经验的,下面爷爷我就把这辈子私藏的各种资源,网站贡献出来给你们。自学编程80余年,这些私藏的实用工具&学习网站陪我走到了现在,必须收藏,学习效率翻倍! - 工具篇一、同*交友论坛1.1 知乎(装逼社区)你爷爷我要开始装逼了哦。点击前往官网1.2 Stack Overflow(大神齐聚)开发过程中遇到什么 bug,上去搜一下,只要搜索的方式对,百分之 99 的问题都能搜到答案。点击前往官网

2022-05-22 21:46:03 43584

原创 2020常州市程序设计小能手真题及题解

第一题 欢迎(welcome)欢迎参加2020年常州市“程序设计小能手”比赛!小X想为你献上一张贺卡,不过…你得自己打印出来。 贺卡由三行组成。其中第二行为”*Welcome,ContestantNoA!*",其中A是选手的编号。第一行和第三行相同,是和第二行字符数量 相同的"* ”组成。 你可以通过样例来理解。样例输入1样例输出**************************Welcome,ContestantNo.1!**************************

2022-05-22 12:55:20 2246

原创 c++输出Hello world

Hello world,编程史上里程碑的表现,关于它的由来可以看这篇文章:你知道Hello World程序的由来吗?_WWWWWWWWolf的博客-CSDN博客下面介绍一下它的几种c++实现方式cin cout使用流输入,如果用函数的话,主程序只要一行,如下面#include<bits/stdc++.h>using namespace std;void hello(){ cout<<"Hello world!\n";}main(){ hello();

2022-05-21 22:19:00 4748

原创 c++实现选择排序

选择排序时间复杂度:O(n^2)是否稳定:否基本思想首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。具体实现方法①初始状态:无序区为R[0..n-1](共n个元素),有序区为空。②第1趟排序设置一个变量i,让i从0至n-2循环的同时,在对比数组中元素i跟元素i+1的大小,如果R[i+1]比R[i]小,则用一个变量k来记住他的位置(即k=i+1)。等到循环.

2022-05-20 20:07:55 395

转载 c++实现01背包问题

话不多说,直接上代码#include <bits/stdc++.h>using namespace std;int w[35],c[35],m,n;int dfs(int p, int x, int v){ if(p<=0||x>n) return v; if(p>=w[x]) return max(dfs(p-w[x],x+1,v+c[x]),dfs(p,x+1,v)); else return dfs(p,x+

2022-05-19 18:25:13 659

原创 C++实现矩阵乘法

最近在刷信奥赛一本通,看到一个矩阵乘法,题目是信奥赛一本通OJP1125题目描述计算两个矩阵的乘法。n×m阶的矩阵A乘以m×k阶的矩阵B得到的矩阵C 是n×k阶的,且C[i][j] = A[i][0]×B[0][j] + A[i][1]×B[1][j] + …… +A[i][m-1]×B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。输入第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100。然后先后输入A和B两个矩阵,A矩阵n行m列,

2022-05-19 18:07:26 4551

原创 C++实现高精度除法

这里给的是高精除以低精。算法分析做除法时,每一次的商的值都在0~9,每次求得的余数连接以后的若干位得到新的被除数,继续做除法。因此在做高精度除法时,要涉及到乘法运算和减法运算以及移位处理。为程序简洁,可以避勉高精度乘法,用0~9次循环减法取代得到商的值,对于高精度数除以低精度数,我们采用按位相除法。参考程序#include<bits/stdc++.h>using namespace std;int a[100005];int c[100005];main(){ s

2022-05-18 17:58:36 2399 1

原创 二分查找

二分查找的百度网址先附在这里:二分法查找_百度百科二分查找是一种高效的查找算法,最坏时间复杂度也高达O(logn),最好达到O(1),可以用循环或递归实现,实现的前提必须是数组已经排序,至于为什么已经排序,用一个简单的例子说明。数组a[10]={0,1,8,3,4,2}。要查找8,第一轮下来由于3小于8,所以左边变为4,查找下来找不到8,可以自己去试一下。代码并不难写,下面给出循环实现。循环#include<bits/stdc++.h>#define cio ios::s

2022-05-17 18:11:30 275

转载 C++常用排序算法总结

排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将给出详细的说明。 简单排序算法,后面你将看到他们的共同点是算法复杂度为O(N*N):1.冒泡排序:#include <iostream.h>void BubbleSort(int* pData,int Count){int iTemp;for(int i=1;i<Count;i++)......

2022-05-15 14:18:06 1236

原创 判断素数(普通方法,埃氏筛)

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。普通方法:遍历2~n-1,如果能整除则不是素数,反之则是素数代码如下#include<bits/stdc++.h>using namespace std;bool ok(int n){ if(n<2){ return 0; } for(int i=2;i<n;i++){ if(n%i==0){ return 0;

2022-05-15 14:11:24 435

原创 2021常州市程序设计小能手真题及题解

第一题 书页(book)样例输入52 31样例输出R分析:这道题就是一道if题,我是用三目运算符做的,如下#include <bits/stdc++.h>using namespace std;int main(){ int n,m,x,y,d; cin>>n>>x>>y>>d; cout<<(d%2==x%2?'L':'R'); return 0;}第二题 鸡

2022-05-14 15:32:00 3416 1

原创 C++:罗列出1~100000000的所有雷劈数

雷劈数,定义为:将正整数n的左边和右边(如3055拆分成30和55)相乘结果为n最小的雷劈数:81问题:找到1000000以内的所有雷劈数思路:雷劈数既然能为两个数相乘,说明它肯定是完全平方数,所以从平方根列起。、#include<bits/stdc++.h>using namespace std;const int n=100000000;bool lp(int n){ int w=0,t=n; while(t){//算出位数 w++; t/=10; }

2022-05-13 18:37:55 4497

原创 C++卡常技巧

卡常相信大家都了解吧,不了解的点这里蓝色传送门现在来介绍一下C++常用的卡常技巧流输入优化(ios::sync_with_stdio(0))使用read函数读入template<typename tn>void read(tn &a){ tn f=1,ans=0; char c=' '; for(;!isdigit(c);c=getchar()) if(c=='-') f=-1; for(;isdigit(c);c=getchar()) ans=ans*10

2022-05-12 18:23:07 1565

原创 C++ 高精度乘法

题目描述:给定两个位数不超过255位的正整数,求它们的乘积。输入描述:输入文件中包含两个不超过255位正整数输出描述:对输入的正整数,输出其乘积。样例输入11119样例输出9999算法原理如图第一步:输入字符串,并将其转化成数组 cio cin>>s1; cin>>s2; la=s1.size(),lb=s2.size(); for(int i=0;i<la;i++){ a[la-i]=s1[i]-'0';

2022-05-11 17:44:17 643

原创 经典递归问题——汉诺塔

汉诺塔问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。面对庞大的数字(移动圆片的次数)18446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。 后来,这个传说就演变为汉诺塔游戏:  1.有三根杆子A,B,C。A杆上有若干碟子  2.每.

2022-05-10 18:23:46 813

原创 【递归】汉诺塔游戏

题目描述汉诺塔问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。面对庞大的数字(移动圆片的次数)18446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。 后来,这个传说就演变为汉诺塔游戏:  1.有三根杆子A,B,C。A杆上有若干碟子

2022-05-10 18:19:30 749

原创 水仙花数(c++实现)

水仙花数的定义如下(狭义):水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。要求编程求出1000以内的所有水仙花数样例输入:无样例输出:153370371407C++代码如下#inc

2022-05-09 20:02:18 3461

原创 求出10000以内的完美数(C++实现)

完美数的定义如下:一个数除本身外的因子相加之和等于该数C++代码如下#include<bits/stdc++.h>using namespace std;int yzh(int n){ int ans=0; for(int i=1;i<n;i++){ if(n%i==0){ ans+=i; } } return ans;}bool ok(int n){ if(yzh(n)==n){ return 1; } return 0;}const

2022-05-08 20:31:33 1334

原创 [NOIP2008提高组] 笨小猴

题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。样例输入error样例输出Lucky Word2说实话,这道题不配提高组的难度,刚学完字符串都做得出来了。

2022-05-07 17:16:24 433

原创 C++实现高精度加法

在c++中,最大的数据类型是long long,范围是-2^63~2^63-1,但这仍然无法满足高精度运算,原理吗,就是小学学的列竖式计算,如下图废话不多说,上代码#include<bits/stdc++.h>using namespace std;int a[1005],b[1005],c[1005];string s1,s2;int main(){ cin>>s1>>s2; int la=s1.size(),lb=s2.size(),x=0

2022-05-06 18:53:29 1252

原创 C++常用排序算法

1冒泡排序时间复杂度O(n^2)示例:for(int i=1;i<n;i++){ for(int j=1;j<=n-i;j++){ a[j+1]=max(a[j],a[j+1]); a[j]=min(a[i],a[j+1]); } }2快速排序时间复杂度O(nlogn)最坏时间复杂度O(n^2)示例sort(a+1,a+n+1)3计数排序时间复杂度:O(n+m)示例:#include <bits/

2022-05-04 20:50:08 626

原创 高精度减法

题目描述高精度减法,求a-b a,b都不超过240位样例输入33333333333333333333333333333333333333333 22222222222222222222222222222222222222222样例输出11111111111111111111111111111111111111111111111数据不保证a>b,如果差是负数要输出'-'号; 另外差的高位上的0要去掉。#include<bits/stdc++.h>#includ

2022-05-04 13:08:02 553

原创 【NOIP05普及组】采药

题目描述第一行有两个整数T(1 <= T <= 1000)和M(1 <= M <= 100),用一个空格隔开,T代表总共能够用来采药的时间,M代表山洞里的草药的数目。接下来的M行每行包括两个在1到100之间(包括1和100)的整数,分别表示采摘某株草药的时间和这株草药的价值。样例输入70 371 10069 11 2样例输出3对于30%的数据,M <= 10; 对于全部的数据,M <= 100,T<=1000;#includ

2022-05-03 15:47:17 387

原创 含有数字3的自然数

题目描述编程求:所有不超过n的自然数中,含有数字3的自然数的个数。样例输入5样例输出1数据范围1<=n<=1000000内存限制:256 时间限制:1.0sec#include<bits/stdc++.h>#define N 250000using namespace std;bool san(int n){ while(n){ if(n%10==3){ return 1; } n/=10; } return 0;

2022-05-02 16:38:32 1367

原创 求M和N的最大公约数

题目描述求两个自然数M和N的最大公约数(M,N都在长整型范围内)样例输入45 60样例输出15AC#include<iostream>using namespace std;int gcd(int a,int b){ if(a%b==0){ return b; } else{ return gcd(b,a%b); }}main(){ int a,b; cin>>a>>b; cout<<gcd(a,b)

2022-05-01 16:45:20 1889

原创 比较大小

题目描述输入正整数a,b(<=10的250次方),比较a和b的大小,如果a>b,输出1;如果a=b,输出0;如果a <b,输出-1 。样例输入12345样例输出1#include<bits/stdc++.h>using namespace std;char a[10005],b[10005];bool cmp(int x,int y){ if(x<y) { return true; } else { r

2022-04-27 17:44:12 644

c ++使用matplotlib

c ++使用matplotlib

2022-07-20

2021常州市程序设计小能手真题及题解

常州市程序设计小能手2021年的试题还有我自己写的题解(虽然只是复制了下我的文章,不过总比成为我粉丝好吧),兄弟们呀,求看

2022-06-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除