小编Gre*_*ill的帖子

递归因子函数

如何将这两个函数组合到一个递归函数中以获得此结果:

factorial(6)
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
Run Code Online (Sandbox Code Playgroud)

这些是代码

def factorial( n ):
   if n <1:   # base case
       return 1
   else:
       return n * factorial( n - 1 )  # recursive call
def fact(n):
       for i in range(1, n+1 ):
               print "%2d! = %d" % ( i, factorial( i ) )

fact(6)
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120 …
Run Code Online (Sandbox Code Playgroud)

python recursion factorial

10
推荐指数
4
解决办法
7万
查看次数

有没有用clang禁用三字符的开关?

我有一些(遗留)代码,我第一次使用clang构建.代码类似于:

sprintf(buf, "%s <%s ????>", p1, p2);
Run Code Online (Sandbox Code Playgroud)

Clang发出以下警告(错误-Werror):

test.c:6:33: error: trigraph converted to '}' character [-Werror,-Wtrigraphs]
    sprintf(buf, "%s <%s ????>", p1, p2);
                           ^
Run Code Online (Sandbox Code Playgroud)

显然,这??>不是一个三元组,所以我想完全禁用三元组(源不会故意在任何地方使用它们).

我试过了,-no-trigraphs但这不是一个真正的选择:

clang: warning: argument unused during compilation: '-no-trigraphs'
Run Code Online (Sandbox Code Playgroud)

我可以关闭三元组警告,-Wno-trigraphs但我不希望实际发生三元组转换.

注意:Trigraphs被启用为使用的意外副作用-std=c89.

c++ clang trigraphs

10
推荐指数
1
解决办法
4114
查看次数

如果安装了特定应用程序,则从浏览器中检测

我们有一个高级网页(ASP.NET,C#),以及需要在客户端计算机上安装的应用程序,以便充分利用网页.该应用程序是一个托盘应用程序,主要有两个任务.检测网络服务器上发生某些事件的时间(例如邀请参加会议或通知即将举行的会议).trayapp的另一个任务是使用自定义协议(trayapp://)来执行一些ajax调用回服务器.

我们遇到的一个问题是如何确定应用程序是否安装在本地计算机上.现在,用户必须勾选一个复选框以通知网站应用程序已安装,并且可以安全地调用trayapp:// url调用.

有没有办法,例如通过JavaScript或类似方法来检测我们的应用程序是否安装在本地计算机上?

该检查需要适用于IE,FF和Opera浏览器.

javascript asp.net ajax web-applications

9
推荐指数
2
解决办法
9392
查看次数

在线汇编语言资源

有没有人有资源在x86上学习汇编语言?我正在尝试在MSVC++ 6中调试一个程序并经常遇到汇编(比如踩到memcpy).以前我只是忽略了这些但memcpy一直在抛出异常,我需要找出原因..

任何帮助,将不胜感激 :)

编辑:哇,很多很棒的资源..我希望我能把所有的东西都标记为已接受的答案:P

提示:结合任何人?:P

新编辑:我只看了答案,这些似乎是最好的:

Aseraphim的帖子专门针对intel x86

jkchong的帖子有更多介绍性文字

x86 assembly visual-c++

9
推荐指数
2
解决办法
1114
查看次数

如何让git-diff创建一个"上下文"格式diff?

我有一个Git repo,我需要用默认git diff格式创建补丁文件.我的用例是我有一台笨重的旧OSF/1机器,我需要在其上应用补丁,而/bin/patch那里的程序并不了解统一的差异.

如果我使用GIT_EXTERNAL_DIFF=diff,希望我可以使用GIT_DIFF_OPTS=-c请求上下文格式diff,那么我的(现代)diff程序在其命令行上抱怨额外的参数:

diff: extra operand `373e5907b789a1398a91f4ceb4ab14e8a0ed4282'
diff: Try `diff --help' for more information.
external diff died, stopping at [filename].
Run Code Online (Sandbox Code Playgroud)

设置GIT_EXTERNAL_DIFF=echo显示Git似乎运行外部差异程序:

$GIT_EXTERNAL_DIFF <file2> <file1> <hash> <mode> <tmpfilename> <hash> <mode>
Run Code Online (Sandbox Code Playgroud)

这种混淆diff不需要额外的参数.是否有一种简单的方法来git diff创建一个旧式的"上下文"格式diff?

(我目前的计划是编写一个单线程的shell脚本,diff只是调用真实的$1 $2,但我希望有一种不那么尴尬的方式.)

git diff

9
推荐指数
2
解决办法
2496
查看次数

嵌套for循环的大O复杂性

我对以下的复杂性感到困惑(在内部循环内执行的操作是在恒定时间内):

for(int i=0; i<n; i++)
  for(int j=i; j<n; j++)
Run Code Online (Sandbox Code Playgroud)

这是O(n ^ 2)还是O(n)?我想O(n ^ 2).有任何想法吗?

以下内容让我很好奇:

for(int i=0; i<n; i++)
   for(j=0; j<i; j++)
Run Code Online (Sandbox Code Playgroud)

big-o nested-loops

9
推荐指数
1
解决办法
2217
查看次数

拼命寻找我的指针问题的答案

我一直在做大学的C任务,并且一直试图理解我似乎对我的代码有一个错误.基本上,我的指针(和/或内存分配)似乎有问题.

此赋值主要是关于链表,因此结构包含指向列表中下一个元素的指针.显然,遍历列表直到我发现当前元素有一个指向下一个元素的NULL指针(然后我将其更改为指向我要添加的'new'元素的指针.

我遇到的问题是,由于某些原因,我的代码似乎完全搞砸了我的内存指针,因为它们会以某种方式变得混乱.它们似乎很好,但很快就会变成垃圾.

以下是我在XCode调试器中的手表向我展示的内容:

我的调试器截图

第一个圆圈显示了值作为列表中的第一个元素,据我所知,它最初设置正确,应为"C0001\0".第二个圆圈显示current->nextCategory指针应为NULL(0x0),而是显示奇怪的内存地址(查看它的大小!).我认为这些问题是相关的,但由于我是C的新手,我不知道如何或为什么.

在任何一种情况下,当我签current->nextCategory != NULL入我的while语句时,它会抛出EXC_BAD_ACCESS:

EXE_BAD_ACCESS错误

我花了几个小时把头发拉出来,因为我无法弄清楚我的程序到底发生了什么.我的指针做错了,还是使用malloc()不当?

这是我的计划的相关部分:

/****************************************************************************
* Initialises the system to a safe empty state.
****************************************************************************/
void systemInit(GJCType* menu)
{
   if (menu == NULL) {
      fprintf(stderr, "can't initialize system with a null menu pointer.\n");
      exit(EXIT_FAILURE);
   }
   menu->headCategory = NULL;
   menu->numCategories = 0;
}


/****************************************************************************
* Loads all data into the system.
****************************************************************************/
int loadData(GJCType* menu, char* menuFile, char* submenuFile)
{
   FILE *fp;
   size_t len;
   char *line;
   char *buffer;
   CategoryTypePtr …
Run Code Online (Sandbox Code Playgroud)

c memory pointers linked-list

9
推荐指数
1
解决办法
2082
查看次数

将文件转换为方案中的列表或字符串

我在处理文本文件并将其转换为列表或字符串时遇到了一些问题.

说我有"blah.txt",其中包含:

3 + 4
Run Code Online (Sandbox Code Playgroud)

现在我想调用我知道可以完成的文件

(define in (open-input-file "blah.txt"))
Run Code Online (Sandbox Code Playgroud)

我从哪里拿到它?

scheme racket

9
推荐指数
2
解决办法
7321
查看次数

为什么在C/C++/C#/ Java等命令式或OO语言中不存在交换/交换运算符?

我总是想知道为什么这样一个简单而基本的操作,比如交换两个变量的内容,并不是内置于许多语言中的.

它是计算机科学课程中最基本的编程练习之一; 它在很多算法中被大量使用(例如排序); 每隔一段时间就需要它,并且必须使用临时变量或使用模板/泛型函数.

它甚至是许多处理器上的基本机器指令,因此具有临时变量的标准方案将得到优化.

已经创建了许多不太明显的运算符,例如赋值运算符(例如+ =,可能是为了反映累积的机器指令而创建的,例如添加ax,bx),或者?? C#中的运算符.

那么,原因是什么?或者它确实存在,我总是错过它?

programming-languages language-design

8
推荐指数
2
解决办法
817
查看次数

隐马尔可夫模型预测下一次观察

我对鸟的运动进行了500次观察.我想预测这只鸟的第501次运动是什么.我在网上搜索,我想这可以通过使用HMM完成,但我没有任何关于该主题的经验.任何人都可以解释用于解决此问题的算法的步骤吗?

hidden markov prediction hidden-markov-models

8
推荐指数
1
解决办法
8879
查看次数