keywords:计算器代码、Calculator #include "stdio.h" #include "string.h" #define MAX 1001 double stack[MAX]; int tail; int main(){ int a; while(scanf("%d ",&a)&&a!=0){ tail=0; stack[++tail]=1.0*a;//tail始终指向末尾数字位置 //1.入栈所有数据(如果遇到*/号,只更新栈尾) char ch1,ch2; while(scanf("%c %d%c",&ch1,&a,&ch2)!=EOF){ if(ch1=='+'){ stack[++tail]=1.0*a;//push }else if(ch1=='-'){ stack[++tail]=-1.0*a;//push neg }else if(ch1=='*'){ stack[tail]=stack[tail]*a;//update tail }else if(ch1=='/'){ stack[tail]=stack[tail]/(double)a;//updata tail } if(ch2!=' ') break; } //2.把栈里头的东西全部加起来,求和 double result=0; for(int i=1;i<=tail;i++) result+=stack[i]; printf("%.2lf\n",result); } return 1; } 原文:https://blog.csdn.net/JIEJINQUANIL/article/details/51405381

Continue reading

keywords:Pathfinding、Rush AI、Flocking AI、Swarm AI、Fish AI、 相关博客 The StarCraft BroodWar Resource for custom AIs http://www.starcraftai.com/wiki/Main_Page How does StarCraft II’s pathfinding algorithm work? https://www.quora.com/How-does-StarCraft-IIs-pathfinding-algorithm-work pathing 6 - flocking http://satirist.org/ai/starcraft/blog/archives/68-pathing-6-flocking.html STARCRAFT 1 PATHFINDING: A TECHNICAL ANALYSIS http://striketactics.net/devblog/starcraft-1-pathfinding-technical-analysis The StarCraft path-finding hack https://www.codeofhonor.com/blog/the-starcraft-path-finding-hack A* navigational mesh path finding https://gamedev.stackexchange.com/questions/20392/a-navigational-mesh-path-finding 相关论文 A Q-Learning Algorithm for Adversarial Real-Time Strategy Games https://www.aaai.org/ocs/index.php/AIIDE/AIIDE12/paper/download/5515/5734 StarCraft Unit Motion: Analysis and Search Enhancements https://www.aaai.org/ocs/index.php/AIIDE/AIIDE15/paper/download/11573/11384 MCTS library for unit movement planning in real-time strategy game Starcraft

Continue reading

题目: 给定一个数组a,再给定一个值k,数组a的任意两个元素组合,他们的差值要求等于k,求出这种组合的对数。比如数组{1, 5, 3, 4, 2},k=2,那么组合对数等于3,因为符合要求的组合为{1,3}、{4,2}、{5,3}。 代码: #include <iostream> #include <vector> int main(int argc, char* argv[]) { std::vector<int> a; a.push_back(1); a.push_back(5); a.push_back(3); a.push_back(12); a.push_back(4); a.push_back(6); a.push_back(9); a.push_back(2); int k = 3; int count = 0; std::vector<std::vector<int>> paired_eles(a.size(), std::vector<int>()); for (size_t i = 0; i < a.size(); i++) { for (size_t j = i + 1; j < a.size(); j++) { if (abs(a[i] - a[j]) == k) { paired_eles[i].push_back(j); count++; std::cout << a[i] << "," << a[j] << std::endl; } } } std::cout << count << std::endl; system("pause"); } 输出结果:

Continue reading

题目: 比如一串字符,string s = “abcd”,假设里面的每个字符都不重复,求出这些字符任意组合后,形成的所有的新字符串。忽略掉顺序,比如ac和ca是同一种。 例子: abc的3个字符可以组合的情况为: a b c ab bc ac abc 代码: #include <iostream> #include <string> #include <vector> int main(int argc, char* argv[]) { std::string s("abcd"); std::vector<std::string> vec; for (size_t i = 0; i < s.length(); i++) { std::string s1(1, s.at(i)); vec.push_back(s1); for (size_t j = i + 1; j < s.length(); j++) { for (size_t k = 0; k < s.length() - j; k++) { std::string s2 = s.

Continue reading

题目: 给定一组字符串,字符串中的字符都是数字,比如:”343”、”4521”、”3”,将这些字符串转换为整数后并升序排序。 代码: #include <iostream> #include <string> #include <vector> #include <math.h> int main(int argc, char* argv[]) { std::vector<std::string> StrArr; StrArr.push_back(std::string("563435")); StrArr.push_back(std::string("234234")); StrArr.push_back(std::string("454")); StrArr.push_back(std::string("5765")); StrArr.push_back(std::string("12")); StrArr.push_back(std::string("6")); //字符串转数字 std::vector<int> IntArr; for (std::string& str : StrArr) { size_t len = str.length(); int val = 0; for (size_t i = 0; i < len; i++) { char c = str.at(i); //判断是不是阿拉伯数字 if (c < 48 || c > 57) { continue; } int iv = c - 48; val += pow(10, (len - 1 - i)) * iv; } IntArr.

Continue reading

原文:http://www.cnblogs.com/ovliverlin/archive/2008/03/17/1109106.html 在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器。 有关如何产生随机数的理论有许多,如果要详细地讨论,需要厚厚的一本书的篇幅。不管用什么方法实现随机数发生器,都必须给它提供一个名为“种子”的初始值。而且这个值最好是随机的,或者至少这个值是伪随机的。“种子”的值通常是用快速计数寄存器或移位寄存器来生成的。 下面讲一讲在C语言里所提供的随机数发生器的用法。现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下: 1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535; 2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间) 3) 根据需要多次调用rand(),从而不间断地得到新的随机数; 4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。 这个过程看起来很简单,问题是如果你每次调用srand()时都提供相同的种子值,那么,你将会得到相同的随机数序列,这时看到的现象是没有随机数,而每一次的数都是一样的了。例如,在以17为种子值调用srand()之后,在首次调用rand()时,得到随机数94。在第二次和第三次调用rand()时将分别得到26602和30017,这些数看上去是很随机的(尽管这只是一个很小的数据点集合),但是,在你再次以17为种子值调用srand()后,在对于rand()的前三次调用中,所得的返回值仍然是在对94,26602,30017,并且此后得到的返回值仍然是在对rand()的第一批调用中所得到的其余的返回值。因此只有再次给srand()提供一个随机的种子值,才能再次得到一个随机数。

Continue reading

Author's picture

Neil Wang

久长唯有品格

To Be Marvelous

Yichang·Hubei