九度
文章平均质量分 75
中笑_Wr
这个作者很懒,什么都没留下…
展开
-
题目1116:加减乘除
#includevoid caculate1(int a, char c, int b){switch(c){case'+': printf("%d\n", a + b); break;case'-': printf("%d\n", a - b); break;case'*': printf("%d\n", a * b); break;case'/': {if(b == 0)printf("err原创 2014-04-04 11:10:43 · 381 阅读 · 0 评论 -
全排列(非递归版)
考虑全排列的非递归实现,先来考虑如何计算字符串的下一个排列。如"1234"的下一个排列就是"1243"。只要对字符串反复求出下一个排列,全排列的也就迎刃而解了。 如何计算字符串的下一个排列了?来考虑"926520"这个字符串,我们从后向前找第一双相邻的递增数字,"20"、"52"都是非递增的,"26 "即满足要求,称前一个数字2为替换数,替换数的下标称为替换点,再从后面找一个比替换数大的最小原创 2014-04-09 22:03:07 · 397 阅读 · 0 评论 -
全排列(递归版)
1.试想,我们只有两个数字:12.要对它进行全排列,第一种方式就是12本身,第二种,将12交换,变为21即可。这提示了我们一种交换的思路。2.但这概括的并不全面。试想,我们要对123进行全排列。我们可以采用将1固定,“23”进行全排列,将“2”固定,对“13”进行全排列。将“3”固定,对“12”进行全排列。这其实就是首部为”1“,然后是“2”,然后是“3”,不就是第二位后边的数依次和第一位进行交换原创 2014-04-10 11:25:14 · 472 阅读 · 0 评论