c语言基础知识
a千里快哉风
这个作者很懒,什么都没留下…
展开
-
数字三角形 数字金字塔 递推 动态规划 空间优化
#include<iostream>using namespace std;# define MAX 1010int D[MAX][MAX];int n;int *maxSum;int main(){ cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) cin>>D[i][...原创 2020-02-14 20:39:29 · 471 阅读 · 0 评论 -
数字三角形 数字金字塔 递推 动态规划
#include<iostream>using namespace std;#define MAX 1010int D[MAX][MAX];int n;int maxSum[MAX][MAX];int main(){ cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) cin>&...原创 2020-02-14 20:29:57 · 499 阅读 · 0 评论 -
数字三角形
#include<iostream>const int MAX= 1020;using namespace std;int n;int D[MAX][MAX];int maxSum[MAX][MAX];int MaxSum(int i,int j){ if(maxSum[i][j]!=-1) return maxSum[i][j]; if(i==n) maxSu...原创 2020-02-14 20:17:45 · 171 阅读 · 0 评论 -
数字三角形
#include<iostream>using namespace std;#define MAX 101int D[MAX][MAX];int n;int MaxSum(int i,int j){ if(i==n) return D[i][j]; int x=MaxSum(i+1,j); int y=MaxSum(i+1,j+1); return max(x,...原创 2020-02-14 16:05:27 · 174 阅读 · 0 评论 -
快速排序
#include<iostream>using namespace std;void swap(int &a,int &b){ int temp=a; a=b; b=temp;}void QuickSort(int a[],int s,int e){ if(s>=e) return ; int k=a[s]; int i=s,j=e; w...原创 2020-02-13 20:58:01 · 126 阅读 · 0 评论 -
归并排序
#include<iostream>using namespace std;void Merge(int a[],int s,int m,int e,int temp[]){ int pb=0; int p1=s,p2=m+1; while(p1<=m&&p2<=e){ if(a[p1]<a[p2]){ temp[pb++]=a[p...原创 2020-02-13 20:24:50 · 133 阅读 · 0 评论 -
二分查找求方程的根
double EPS=1e-6;double f(double x){ return x*x*x-5*x*x+10*x-80;}int main(){ double root,x1=0,x2=100,y; root=x1+(x2-x1)/2; int triedTimes=1; y=f(root); while(fabs(y)>EPS){ if(y>0) x...原创 2020-02-12 21:13:41 · 739 阅读 · 0 评论 -
二分查找
int BinarySearch(int a[],int size ,int p){ int l=0; int r=size-1; while(l<r){ int mid=l+(l+r)/2; if(p==a[mid]) return mid; if(p>a[mid]) l=mid+1; if(p<a[mid]) r=mid-1; ...原创 2020-02-12 21:05:38 · 167 阅读 · 0 评论 -
高精度除以低精度
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ char a1[100]; int a[100],c[100],lena,x=0,lenc,b; memset(a,0,sizeof(a)); memset(c,0,sizeof(c...原创 2020-01-05 22:16:24 · 538 阅读 · 0 评论 -
高精度乘法
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ char a1[101],b1[101]; int a[101],b[101],c[101],lena,lenb,lenc; memset(a,0,sizeof(a)); memse...原创 2020-01-05 21:39:48 · 154 阅读 · 0 评论 -
高精度减法
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ int a[233],b[233],c[233],lena,lenb,lenc; char a1[233],b1[233]; memset(a,0,sizeof(a)); memse...原创 2020-01-05 21:29:51 · 223 阅读 · 0 评论 -
高精度加法
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){ char a1[100],b1[100]; int a[100],b[100],c[100],lena,lenb,lenc,x=0; memset(a,0,sizeof(a)); m...原创 2020-01-05 21:09:35 · 128 阅读 · 0 评论 -
高精度计算
高精度计算(1)数据接收和存储方法可采用字符串方式输入。(2)进位,借位处理加法进位:c[i]=a[i]+b[i];if(c[i]>=10){ c[i]%=10; ++c[i+1];}减法借位:if(a[i]<b[i]){ --a[i+1]; a[i]+=10;}c[i]=a[i]-b[i];乘法进位:c[i+j-1]=a[i]*b[j]+x+c[...原创 2020-01-05 20:55:20 · 347 阅读 · 0 评论 -
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。问:他第一天开始吃的时候桃子一共有多少个?(递归:倒序关系
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。问:他第一天开始吃的时候桃子一共有多少个?(递归:倒序关系:f(n)= 2*f(n-1)+2)输入输出样例:3 (注:运行时的输入)10 (注:运行时的输出)#include <stdio.h>int f(int m){ if(m...原创 2020-01-04 14:29:29 · 1816 阅读 · 0 评论 -
最大公约数
#include<iostream>using namespace std;int gcd(int ,int );int main(){ int m,n; cin>>m>>n; cout<<"gcd="<<gcd(m,n)<<endl; return 0;}int gcd(int m,int n){ ret...原创 2020-01-04 14:28:53 · 175 阅读 · 0 评论 -
单链表操作
1.建立链表 #include<iostream>using namespace std;struct Node{ int date; Node *next;}; Node *head,*p,*r;int x;int main{ cin>>x; head=new Node; r=head; while(x!=-1){ p=new Node;...原创 2020-01-04 14:28:19 · 208 阅读 · 0 评论 -
进制转化 10进制转化为2进制,8进制,16进制
#include<iostream>#include<cstdlib>using namespace std;void turndate(int ,int );char ch[6]={'A','B','C','D','E','F'};int main(){ int n; cin>>n; turndate(n,2); turndate(n,8);...原创 2020-01-05 22:02:25 · 163 阅读 · 0 评论 -
冒泡排序 函数调用
#include<iostream>#include<ctime>#include<cstdlib>using namespace std;int main(){ void bubble(int[],int n); int a[100]; int n; cin>>n; srand((unsigned)time(NULL)); fo...原创 2020-01-03 22:09:45 · 3123 阅读 · 0 评论 -
字符串判等
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int N=256;char s1[N],s2[N],a[N],b[N];int l1,l2;int main(){ gets(s1); gets(s2); strlwr(s1); st...原创 2020-01-03 21:52:43 · 1343 阅读 · 0 评论 -
按字典序输出国家名
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ char t[21]; char cname[11][21]; int n; cin>>n; for(int i=0;i<n;i++){ gets(cname...原创 2020-01-03 21:40:49 · 907 阅读 · 0 评论 -
过滤空格
#include<cstdio>#include<iostream>using namespace std;char s[20];int main(){ while(scanf("%s",s)==1){ printf("%s ",s); } return 0;}原创 2020-01-03 21:30:19 · 180 阅读 · 0 评论 -
约瑟夫环报数
#include<iostream>#include<cstring>#include<iomanip>using namespace std;int main(){ int a[100]; memset(a,0,sizeof(a)); int n,m; cin>>n>>m; int out=0,cnt1=0,cnt=0...原创 2020-01-03 21:22:56 · 180 阅读 · 0 评论 -
蛇形填数
#include<iostream>#include<cstring>#include<iomanip>using namespace std;int main(){ int a[101][101]; memset(a,0,sizeof(a)); int tot=1; int n; cin>>n; a[1][n]=tot; in...原创 2020-01-03 21:07:01 · 88 阅读 · 0 评论 -
判断是否回文数
#include<iostream>using namespace std;int main(){ char ch,letter[101]; int i=0,j=1; cin>>ch; while(ch!='.'){ i++; letter[i]=ch; cin>>ch; } while((j<i)&&(lett...原创 2020-01-03 19:47:14 · 147 阅读 · 0 评论 -
打印杨辉三角
#include<iostream>#include<iomanip>using namespace std;int main(){ int n; cin>>n; int a[101][101]={0}; a[1][1]=1; for(int i=2;i<=n;i++){ a[i][1]=1; a[i][i]=1; for(in...原创 2020-01-03 19:40:41 · 137 阅读 · 0 评论 -
筛法求100内素数
#include<iostream>#include<cmath>#include<cstring>#include<iomanip>using namespace std;const int n=100;bool prime[n+1];int main(){ memset(prime,1,sizeof(prime)); prime...原创 2020-01-03 19:29:53 · 166 阅读 · 0 评论 -
冒泡排序
#include<iostream>#include<ctime>#include<cstdlib>using namespace std;int main(){ int a[1000]={0}; int n; cin>>n; srand((unsigned)time(NULL)); for(int i=0;i<n;i++){...原创 2020-01-03 19:14:38 · 94 阅读 · 0 评论 -
把合数分解成质因数乘机形式
#include<iostream>using namespace std;int main(){ int n; cin>>n; int i=2; do{ while(n%i==0){ cout<<i; n/=i; if(n!=1) cout<<"*"; } i++; }while(n!=1); ...原创 2020-01-03 18:36:46 · 548 阅读 · 0 评论 -
输出这个整数对应的拼音
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出 fu 字。十个数字对应的拼音如下:10: ling21: yi32: er43: san54: si65: wu76: liu87: qi98: ba109: jiu输入格式输入在一行中给出一个整数,如:12341234。提示:整数包括负数、零和正数。输出格式在一行中输出这个整数对应的拼...原创 2019-11-25 22:43:45 · 6386 阅读 · 0 评论 -
Hanoi 问题
Hanoi 问题递推式a[n]=2*a[n-1]+1;原创 2019-12-31 02:13:30 · 189 阅读 · 0 评论 -
在所有的N位数中,有多少个数中有偶数个数字3(说明,0是偶数)?
在所有的N位数中,有多少个数中有偶数个数字3(说明,0是偶数)?【输入格式】 读入一个数N【输出格式】 输出有多少个数中有偶数个数字3。【输入样例】 2【输出样例】 73(由于 位数 比较大的情况下,导致输出数据可能越界,因此,输出个数 % 12345 的结果)【数据规模】 1<=N<=1000分析任何位的数中,根据3的个数不同,分为两类或者偶数位的3,或者包含 奇数位...原创 2019-12-31 02:05:05 · 9419 阅读 · 9 评论 -
昆虫繁殖科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。 每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。 假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(
科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵).问过Z个月以后,共有成虫多少对?0=<X<=20,1<=Y<=20,X=<Z<=50【输入格式】 x,y,z的数值【输出格式】 过Z个月以后,共有成虫...原创 2019-12-31 01:53:33 · 6721 阅读 · 1 评论 -
有 2*n 的一个长方形方格,用一个1*2 的骨牌铺满方格 编写一个程序,试对给出的任意一个n(n>0), 输出铺法总数。
有 2n 的一个长方形方格,用一个12 的骨牌铺满方格编写一个程序,试对给出的任意一个n(n>0), 输出铺法总数。【算法分析】 (1)当n=1时,只能是一种铺法,铺法总数有示为x1=1。 (2)当n=2时:骨牌可以两个并列竖排,也可以并列横排,再无其他方法,如下左图所示,因此,铺法总数表示为x2=2;(3)n=34)推出一般规律:对一般的n,要求xn可以这样来考虑,若...原创 2019-12-31 01:37:47 · 4127 阅读 · 0 评论 -
斐波那契数列递推算法
斐波那契数列递推算法直接上代码#include<iostream>using namespace std;int main(){ int f0=1,f1=1,f2=1; int n; cin>>n; for(int i=3;i<=n;i++){ f2=f0+f1; f0=f1; f1=f2; } cout<<f2<&l...原创 2019-12-31 01:27:35 · 1878 阅读 · 0 评论 -
数塔,从顶部出发在每一个节点都只能走到相邻的节点,也就是只能向左或者向右走,一直走到底层,要求找出一条路径,使得路径上的数字之和最大。
如上图(图片来自网络)是一个数塔,从顶部出发在每一个节点都只能走到相邻的节点,也就是只能向左或者向右走,一直走到底层,要求找出一条路径,使得路径上的数字之和最大。【算法分析】此题的解法有多种,从递归的思想出发,设想,当从顶层沿沿着某条道路从第i层向第i+1层前进时,我们的选择一定是沿其下两条可行路径中最大数字的方向前进,为此,我们可以采用倒推的手法,设a[i][j] 存放从i,j出发到达n层的...原创 2019-12-31 01:23:05 · 4121 阅读 · 0 评论 -
监护室每小时测量一次病人血压值,收缩压s 和
监护室每小时测量一次病人血压值,收缩压s 和扩张压k,若90<=s<=140,且60<=k<=90,则属于正常,试编程实现,连续输入24对数值,统计出病人保持正常血压最长时段小时数并输出,例如,病人最长维持了6个小时正常血压,则输出6。#include<iostream>using namespace std;int main(){ int n=24;...原创 2019-12-27 03:32:32 · 5034 阅读 · 0 评论 -
不使用string.h内定义的任何函数,自己定义一个函数 int strcat(char *str1,char * str2),完成把str2接到str1后的功能, 并返回连接后字符串总长度。
不使用string.h内定义的任何函数,自己定义一个函数 int strcat(char *str1,char * str2),完成把str2接到str1后的功能, 并返回连接后字符串总长度。主函数中输入2个字符串,输出连接后的字符串长度,以及连接后的字符串。测试数据每个输入的 字符串长度不超过40个字符。 输出格式要求:第一行输出一个整数表示连接后的长度,第二行输出连接后的字符串。输入输出样例:abcd (注:运行时的输入)12348 (注:运行时的输出原创 2019-12-22 00:22:30 · 2091 阅读 · 0 评论 -
设计一个递归函数,求出斐波那锲数列的任意第n项。主函数中输入一个数n,调用定义的递归函数后,输出第n项的值。 注:斐波那锲数列的第1项为0,第2项为1。 输入输出样例: 5 (注:运行时的输
设计一个递归函数,求出斐波那锲数列的任意第n项。主函数中输入一个数n,调用定义的递归函数后,输出第n项的值。 注:斐波那锲数列的第1项为0,第2项为1。输入输出样例:5 (注:运行时的输入)3 (注:运行时的输出)原创 2019-12-22 00:21:40 · 2961 阅读 · 0 评论 -
设计一个函数void bi(int n),用递归算法输出十进制数对应的二进制序列,如调用bi(9)则输出“1001”。 输入数据n>=0 输入输出样例: 9 (注:运行时的输入) 1001 (注
设计一个函数void bi(int n),用递归算法输出十进制数对应的二进制序列,如调用bi(9)则输出“1001”。 输入数据n>=0输入输出样例:9 (注:运行时的输入)1001 (注:运行时的输出)原创 2019-12-22 00:21:05 · 1310 阅读 · 1 评论 -
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。问:他第一天开始吃的时候桃子一共有多少个?(递归:倒序关
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。问:他第一天开始吃的时候桃子一共有多少个?(递归:倒序关系:f(n)= 2*f(n-1)+2)输入输出样例:3 (注:运行时的输入)10 (注:运行时的输出)原创 2019-12-22 00:20:19 · 6862 阅读 · 0 评论