摘要:这些函数中都有“重复”的,因为操作数(OPND)栈用double,操作符(OPTR)栈用char。C++中的模板可以解决这个问题吗?这是对着书写的:#include <iostream>
using namespace std; #define STACK_INIT_SIZE 100
#define STACKINCREMENT 100 char Precede_Matrix[7][7] = { {'>', '>', '<', '<', '<', '>'
阅读全文
摘要:#include <cstdio>
#include <iostream>
using namespace std; #define MAXSIZE 20 typedef struct { char *base; char *top; int stacksize;
}SqStack; void InitStack(SqStack &S)
{ S.base = (char *)malloc( MAXSIZE * sizeof(char) ); if(S.base == NULL) exit(-2); S.top = S.base; S.stacksize = MA
阅读全文
摘要:可以:#include <stdio.h>
int main(void)
{ char str[8] = {0}; str[0] = *"jiang"; printf("%s\n", str); return 0;
}2012/5/16 更新补充一个例子(正确):#include <iostream>
using namespace std; int main(void)
{ cout << "0123456789"[5] << endl; return 0; }输出结果是5
阅读全文
摘要:【答】 C++之名是 Rick Mascitti 在 1983 年夏天定名的(参见 The C++ Programming Language(Special Edition) 1.4节) ,C说明它本质上是从 C语言演化而来的,“++”是 C语言的自增操作符。C++语言是 C 语言的超集,是在 C 语言基础上进行的扩展(引入了 new、delete 等 C语言中没有的操作符,增加了对面向对象程序设计的直接支持,等等) ,是先有C 语言,再进行++。根据自增操作符前、后置形式的差别(参见习题 5.15 的解答) ,C++表示对 C语言进行扩展之后,还可以使用 C语言的内容;而写成++C则表示无法
阅读全文
摘要:众所周知,计算机里动辄涉及到斐波拉契数列,本文主要是运用线性代数的方法求出广义斐波拉契数列的通项公式。广义斐波拉契数列的定义(自定义,可能还不够严谨,欢迎指教)如下:且a,b满足a^2 + 4b > 0(原因后面有,即保证分母Δ>0)观察递推公式可知: (1)OK!写这篇博客有两点启示:1.亦可用差分方程的方法求通项公式,不过我还没学,我发现把递推关系用矩阵的形式写成再求通项也是可以的,不过要构造出这个关系比较困难,比如(1)式。2.在一般的算法中求矩阵的幂几乎都是用二分法求,殊不知若λi下有ki个线性无关的特征向量(ki是λi的重根数),即可用相似对角形的方法求,这在高等数学里可
阅读全文
摘要:计算机程序设计艺术算法导论代码大全编译原理人月神话软件随想录C程序设计语言C++ PrimerC++程序设计语言C++沉思录Effective C++More Effective C++Java编程思想STL源码剖析设计模式设计原本程序员修炼之道离散数学及其应用计算机程序的构造和解释深入理解计算机系统架构之美编程珠玑黑客与画家代码之美UNIX编程艺术人件编程之美C和指针C陷阱与缺陷C专家编程C++ Primer PlusC++编程思想Essential C++C++标准程序库具体数学深入浅出MFC持续更新,待加链接中。。算法艺术与信息学竞赛
阅读全文
摘要:觉得用静态循环链表最划算了。1、动态链表要动态分配,指针移来移去,释放指针等等,弄得很烦,容易出错。2、用循环链表是当然的了。// DS: 似循环静态链表 #include <iostream>
#include <cstdio>
//#include <cstdlib>
using namespace std; int Kill_You( const int sum = 1, const int distance = 1, const int start = 1)
{ // 一共参加自杀的人数有 sum 个,每 distence 个人就杀一个,从第 sta
阅读全文
摘要:indent是一个很有用的c源代码对齐工具。一般大家有自己喜欢的风格,可以根据需要来设定indent的风格。Linux Style是:-nbad -bap -nbc -bbo -hnl -br -brs -c33 -cd33 -ncdb -ce -ci4-cli0 -d0 -di1 -nfc1 -i8 -ip0 -l80 -lp -npcs -nprs -npsl -sai -saf -saw-ncs -nsc -sob -nfca -cp33 -ss -ts8 -il1我采用的是类Linux Style:indent -bad -bap -nbc -bbo -hnl -br -brs -c3
阅读全文
摘要:Ackermann Function 是用递归方法定义的,定义如下:(有的资料上阿克曼函数的定义中 m, n 的位置调换了,相应的函数式要对称性地变化,注意取值。)A: N^2 -> N 它的部分函数值如下:C++ 代码如下: 1 #include <iostream> 2 using namespace std; 3 4 __int64 Ackermann (int m, int n) 5 { 6 if(m == 0) 7 return (n + 1); 8 if( m > 0 && n == 0 ) 9 return Ackermann...
阅读全文
摘要:今天一时兴起,突然想试试几个数学软件的功能,就测试了一个不定积分,看看哪个算得最好,最简洁。计算:以下计算结果我都一一验算了。1).先在Mathematica(我用的是在线的wolframalpha)中计算,结果是:2).然后是在Maple 中计算,结果是3).最后再用MATLAB ,结果是当然了,被积函数是可以变形的 ,比如把被积函数通过三角变换化一下之后积分就可以写成这样:再用Mathematica计算,结果就不一样了:好了,从计算结果比较看来,我认为在这方面 Mathematica 最智能,不过都是电脑在算,人是活的,换种给出的形式得到的结果可能就会不同,正如最后的例子所示。今天就写到.
阅读全文